步入正题,我们在Java应用程序的开发过程中碰到Excel类型的文件时(*.xlsx),我们需要对其进行解析(导入)或生成(导出)。
目前,在Java技术生态圈中,可以进行Excel文件处理的主流技术包括:
Apache POI、JXL、Alibaba EasyExcel等。其中Apache POI基于DOM方式进行解析,将文件直接加载内存,所以速度较快,适合Excel文件数据量不大的应用场景;
Alibaba EasyExcel采用逐行读取的解析模式,将每一行的解析结果以观察者的模式通知处理(AnalysisEventListener),所以比较适合数据体量较大的Excel文件解析;
而对于JXL,它只支持Excel 2003以下版本,所以不太常用。
一、我们先来介绍:Apache POI是Apache软件基金会的开放源码函式库,是用Java编写的免费开源的跨平台的Java API,提供给Java程序对Microsoft Office格式档案读和写的功能;
它分别提供对不同格式文件的解析:
● HSSF - 提供读写Microsoft Excel格式档案的功能。
● XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
● HWPF - 提供读写Microsoft Word格式档案的功能。
● HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
● HDGF - 提供读写Microsoft Visio格式档案的功能。
HSSF用于解析旧版本(*.xls)Excel文件,由于旧版本的Excel文件只能存在65535行数据,目前已经不常用,所以在这里我们将讨论-XSSF(*.xlsx)解析Excel文件:
我们在使用时要先导入相关jar包到工程下的文件里:链接:https://pan.baidu.com/s/18SD0kQW0ey9ZyFDNUa2lJw
提取码:z1y5
1.Workbook(Excel文件)
创建或维护Excel工作簿的所有类的超接口:Workbook属于org.apache.poi.ss.usermodel包,
常见实现类是XSSFWorkbook
加载(解析)Excel文件
// 输入流
FileInputStream fis = new FileInputStream("c:\\test\\1627356554991.xlsx");
// Excel文件对象
Workbook workbook = new XSSFWorkbook(fis);
创建Excel文件
// 输出流
FileOutputStream fos = new FileOutputStream("c:\\test\\temp.xlsx");
// Excel文件对象
Workbook workbook &