方案:Apache POI 、阿里EasyExcel
一、Apache POI
https://www.cnblogs.com/crazymakercircle/p/18634991
Apache POI 是 Apache 软件基金会的开放源码函式库,用于操作 Microsoft Office 格式文件,如 Excel、Word 和 PowerPoint 等。它提供了一组 Java API,让开发者能够在 Java 程序中创建、读取和修改这些文件格式,而无需依赖于 Microsoft Office 软件本身。
poi 依赖的基础接口: WorkBook ,有几种实现子类需要进行区分,
POI应用场景和优势
应用场景1 : 数据导出和报表生成:
应用场景2 : 文件格式转换:可以将一种 Office 格式转换为另一种格式。例如,将.doc
文件转换为.docx
文件,或者将.xls
文件转换为.xlsx
文件,方便文件的统一管理和共享。
应用场景3 : 小批量 数据 处理:对于大量的 Office 文件,如需要批量修改文件中的数据、样式或者进行数据提取,POI 可以编写自动化脚本进行处理。例如,在文档审核流程中,批量提取 Word 文档中的关键信息进行检查。
POI 优势:
- 跨平台:作为 Java 库,POI 可以在任何支持 Java 运行环境的平台上使用,这使得它在企业级的异构系统中非常有用。
- 开源免费:POI 是开源软件,开发者可以免费使用和修改其代码,降低了开发成本。
- 功能丰富:能够处理多种 Office 文件格式,并且提供了详细的 API 来操作文件的各个元素,如文档结构、内容、样式等。
POI 的不足:大数据量 , POI 要么是 OOM,要么借助 磁盘,速度太慢。
二、阿里EasyExcel
https://www.cnblogs.com/crazymakercircle/p/18634991
https://easyexcel.opensource.alibaba.com/docs/current/
主要解决 Apache POI 在处理大量数据时可能出现的内存溢出问题,提供了更加便捷、高效的 Excel 读写操作。
优势:
1:内存优化:EasyExcel 使用了 Sax 解析模式,在解析 Excel 文件时采用一行一行读取的方式,避免了将整个文件加载到内存中,大大减少了内存的使用,适用于处理大型 Excel 文件。
2:使用方便:EasyExcel 提供了简单的 API,使得读取和写入 Excel 数据变得更加容易,开发人员可以通过少量代码实现复杂的 Excel 操作。
来自官网:easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便
pom依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.1.1</version> </dependency>
标签:文件,Office,Excel,选型,内存,POI,Apache,操作 From: https://www.cnblogs.com/clarino/p/18644498