【技术选型】Office操作

方案: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>

 

posted @ 2024-12-31 17:26  飞翔在天  阅读(60)  评论(0)    收藏  举报