Hello! 欢迎来到小浪资源网!

如何优化Java POI读取大Excel文件的速度?


如何优化Java POI读取大Excel文件的速度?

优化 Java poi 打开大文件速度

对于读取大文件时速度缓慢的情况,以下是采用 java poi 进行优化的两种方法:

方法一:

利用 xlsx-streamer

立即学习Java免费学习笔记(深入)”;

xlsx-streamer 采用分段缓存方式加载数据,将大文件分段读取到内存中,避免一次性将整个文件加载到对象中,从而有效提升性能。

引入依赖:

<dependency>     <groupid>com.monitorjbl</groupid>     <artifactid>xlsx-streamer</artifactid>     <version>2.1.0</version> </dependency>

示例代码:

public static void readlagerexcel(file file) throws exception {     inputstream inputstream = new fileinputstream(file);     try (workbook workbook = streamingreader.builder()             .rowcachesize(10 * 10)             .buffersize(1024 * 4)             .open(inputstream)) {         // ...     } }

方法二:

采用 easyexcel

easyexcel 是基于 poi 封装优化的大数据量 excel 读写库,可以快速实现 excel 的读写,而且不会出现内存溢出问题。

引入依赖:

<dependency>     <groupid>com.alibaba</groupid>     <artifactid>easyexcel</artifactid>     <version>3.1.0</version> </dependency>

示例代码:

封装对象读取:

public static void readexcelbyeasyexcel(file file) {     list<exceldata> exceldatalist = easyexcel.read(file)             .head(exceldata.class)             .sheet(0)             .doreadsync();     // ... }

不封装对象读取:

public static void readExcelByEasyExcel1(File file) {     List<Map<Integer, String>> listMap = EasyExcel.read(file)             .sheet(0)             .doReadSync();     // ... }

相关阅读