浩克网 手游攻略 软件教程 Java:实现文件批量导入导出实践(兼容xls,xlsx)

Java:实现文件批量导入导出实践(兼容xls,xlsx)

时间:2024-09-07 15:25:25 来源:网络整理 浏览:0

作者:小店的爷爷

转载:cnblogs。com/老叶叶/p/6938889。超文本标记语言

1.介绍一下java文件导入导出数据库,这是目前大多数系统的常用功能。今天写一个小演示,了解一下它的原理,没接触过的同学也可以看一下,供参考。

目前我接触到的进出口技术主要有poi和iReport。POI主要是批量导入一些数据到数据库,iReport导出报表。另外jxl和poi差不多,但是好像很久没更新了。

2007以后的Office好像也不支持,这里就不说了。

2.POI用法详解2.1什么是Apache POI?Apache POI是Apache软件基金会的一个开源库。

POI为Java程序提供API来读写Microsoft Office格式的文件。

2.2 poi的jar包导入本讲解使用maven项目,jar包版本使用poi-3.14和poi-ooxml-3.14。最新版本是3.16。因为3.15之后更新了相关api,所以有些操作可能会有所不同。

大家注意了。

The application program interface of org.apache.poipoi poi 3.14 org.apache.poi poi-ooxml3.142.3 poi explains 2.3.1 structure HSSF-provides the function of reading and writing files in Microsoft's superior spreadsheet format.

2.3.2对象本文主要介绍两个组件,HSSF和XSSF。简单来说,Office 2007之前用HSSF操作excel.xls文件。

XSSF用于Office 2007以后操作excel.xlsx文件。注意,两个文件的后缀是不同的。

HSSF在org.apache.poi.hssf.usermodel的包中,它实现了。Excel文件中的xls格式。

通用组件:

hssf workbook:ExcelObjekt des DokumentsHSSFSheet:excel das FormularHSSFRow:excel的行hssf cell:Excel die Gitter EinheitHSSFFONT:Excel字体HSSFDataFormat:日期格式HSSFHeader:工作表头hssf页脚:工作表尾(我们的工作将会更好。)

风格:

HSSFCellStyle:单元格模型

辅助操作包括:

HSSFDateUtil:日期HSSFPrintSetup:打印HSSFErrorConstants:错误信息表

XSSF打包在org.apache.xssf.usemodel中,工作簿接口是为。Excel文件中的xlsx格式。

通用组件:

XSSFWorkbook : excel的文档对象XSSFSheet: excel的表单XSS流程:excel的行XSSFCell: excel的格子单元XSSFFont: excel字体XSSFDataFormat:日期格式

和HSSF类似;

2.3.3 两个组件共同的字段类型描述其实两个组件就是针对excel的两种格式,大部分的操作都是相同的。

2.3.4 操作步骤以HSSF为例,XSSF操作相同。

首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,

一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。

1、用HSSFWorkbook打开或者创建“Excel文件对象”

2、用HSSFWorkbook对象返回或者创建Sheet对象

3、用Sheet对象返回行对象,用行对象得到Cell对象

4、对Cell对象读写。

3、代码操作3.1 效果图惯例,贴代码前先看效果图

Excel文件两种格式各一个:

代码结构:

导入后:(我导入了两遍,没做校验)

导出效果:

3.2 代码详解这里我以Spring+SpringMVC+Mybatis为基础,扩展:SpringBoot+Mybatis多模块(module)项目搭建教程

Controller:

Service

3.3 导出文件api补充大家可以看到上面service的代码只是最基本的导出。

在实际应用中导出的Excel文件往往需要阅读和打印的,这就需要对输出的Excel文档进行排版和样式的设置,主要操作有合并单元格、设置单元格样式、设置字体样式等。

3.3.1 单元格合并使用HSSFSheet的addMergedRegion()方法

publicintaddMergedRegion(CellRangeAddressregion)参数CellRangeAddress 表示合并的区域,构造方法如下:依次表示起始行,截至行,起始列,

截至列

CellRangeAddress(intfirstRow,intlastRow,intfirstCol,intlastCol)3.3.2 设置单元格的行高和列宽HSSFSheetsheet=wb.createSheet();sheet.setDefaultRowHeightInPoints(10);//设置缺省列高sheet.setDefaultColumnWidth(20);//设置缺省列宽//设置指定列的列宽,

HSSFCellStylecellStyle=wkb.createCellStyle()2、设置样式

参考HSSFCellStylecellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY);cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);/*设置单元格的填充方式,

cell.setCellStyle(cellStyle);//将样式应用到行,

但有些样式只对单元格起作用row.setRowStyle(cellStyle);3.3.4设置字体样式1、创建HSSFFont对象(调用HSSFWorkbook 的createFont方法)

HSSFWorkbookwb=newHSSFWorkbook();HSSFFontfontStyle=wb.createFont();HSSFWorkbookwb=newHSSFWorkbook();2、设置字体各种样式

//设置字体样式fontStyle.setFontName('宋体');//设置字体高度fontStyle.setFontHeightInPoints((short)20);//设置字体颜色font.setColor(HSSFColor.BLUE.index);//设置粗体fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置斜体font.setItalic(true);//设置下划线font.setUnderline(HSSFFont.U_SINGLE);3、将字体设置到单元格样式

所以从属于HSSFCellStyle//将字体对象赋值给单元格样式对象cellStyle.setFont(font);//将单元格样式应用于单元格cell.setCellStyle(cellStyle);大家可以看出用poi导出文件还是比较麻烦的,

导出的api基本上就是这些,最后也希望上文对大家能有所帮助。

源码地址:https://github.com/allanzhuo/myport.git

标题:Java:实现文件批量导入导出实践(兼容xls,xlsx)
链接:https://www.52hkw.com/news/rj/58967.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
Tiktok专用的梯子加速器(TK加速器全球加速)

Tiktok作为当前最火爆的短视频平台,受到了全球用户的热烈欢迎。然而,由于网络限制或者其他原因,很多用户在观看

2024-09-07
怎么不让快递放菜鸟驿站

菜鸟裹裹怎么禁止放快递?经常网购的小伙伴都知道,如果附近有菜鸟驿站,那么驿站的快递员会默认选择放在驿站中,并

2024-09-07
德国游戏排行榜前十名(德国出品的游戏)

中国的玩家可能在新闻里听过德国科隆游戏展,但对德国的游戏却感觉很陌生。游戏玩家大部分多少应该都体验过SL

2024-09-07
菜鸟驿站怎么送货上门

菜鸟裹裹怎么送货上门?有过菜鸟驿站拿快递的小伙伴都知道,很多菜鸟驿站在派送快递时,默认是放在菜鸟驿站,需要我

2024-09-07