Java解析大数据量Excel,可解析1048576行excel
Java解析大数据量Excel,支持解析百万行excel数据,十万数据基本上十来秒就解析完毕,亲测过最大excel1048576行数据用时219秒,硬件好点的PC估计跑起来更快。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1775 2018-11-30 14:24 java解析大数据量ExcelExcelReadTest.java
文件 15555629 2018-05-16 10:28 java解析大数据量Excelooxml-schemas-1.3.jar
文件 2701171 2018-05-16 10:34 java解析大数据量Excelpoi-3.17.jar
文件 1479023 2018-05-16 10:37 java解析大数据量Excelpoi-ooxml-3.17.jar
文件 5947707 2018-05-16 11:07 java解析大数据量Excelpoi-ooxml-schemas-3.15.0.jar
文件 51073 2018-05-16 09:44 java解析大数据量Excelxlsx-streamer-1.2.1.jar
文件 251 2018-11-30 14:28 java解析大数据量Excel使用说明.txt
文件 221 2018-11-30 14:27 java解析大数据量Excel使用说明.txt.bak
目录 0 2018-11-30 14:28 java解析大数据量Excel
----------- --------- ---------- ----- ----
25736850 9
package com.lx100.b2bshop.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.annotations.Case;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.monitorjbl.xlsx.StreamingReader;
public class ExcelReadTest {
public static void testLoad() {
try {
InputStream is = new FileInputStream(new File(“F:\sftp““test.xlsx“));//文件
StreamingReader reader = StreamingReader.builder()
.rowCacheSize(100) // number of rows to keep in memory (defaults to 10)
.bufferSize(4096) // buffer size to use when reading InputStream to file (defaults to 1024)
.sheetIndex(0) // index of sheet to use (defaults to 0)
.read(is); // InputStream or File for XLSX file (required)
int count = 0;
for (Row r : reader) {
String ss = ““;
for (Cell c : r) {
ss = ss + c.getStringCellValue();
}
System.out.println(ss);
count++;
}
System.out.println(“总条数:“+count);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println(“----------------------------------测---------试----------------------------------“);
Long start = System.currentTimeMillis();
testLoad();
Long end = System.currentTimeMillis();
System.out.println(“总共用时:“+((end-start)/1000)+“秒“);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1775 2018-11-30 14:24 java解析大数据量ExcelExcelReadTest.java
文件 15555629 2018-05-16 10:28 java解析大数据量Excelooxm
文件 2701171 2018-05-16 10:34 java解析大数据量Excelpoi-3.17.jar
文件 1479023 2018-05-16 10:37 java解析大数据量Excelpoi-ooxm
文件 5947707 2018-05-16 11:07 java解析大数据量Excelpoi-ooxm
文件 51073 2018-05-16 09:44 java解析大数据量Excelxlsx-streamer-1.2.1.jar
文件 251 2018-11-30 14:28 java解析大数据量Excel使用说明.txt
文件 221 2018-11-30 14:27 java解析大数据量Excel使用说明.txt.bak
目录 0 2018-11-30 14:28 java解析大数据量Excel
----------- --------- ---------- ----- ----
25736850 9
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)