Apache POI只读取大型Excel文件的第一行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache POI只读取大型Excel文件的第一行相关的知识,希望对你有一定的参考价值。
我可以只使用Apache POI读取Excel文件的第一行吗?我不想读取整个文件,因为它有50,000行,读取时间长达10分钟(性能是一种灾难)。我通过文件上传获取字节。我的选项是字节数组或InputStream。现在我这样做:
Workbook workbook = new XSSFWorkbook(excelByteStream); //This line takes a lot of time, while debugging up to 10 minutes
Sheet firstSheet = workbook.getSheetAt(0);
DataFormatter df = new DataFormatter();
List<ColumnPanel> columnPanels = new ArrayList<>();
int i = 0;
for (Cell cell : firstSheet.getRow(0))
{
columnPanels.add(new ColumnPanel(df.formatCellValue(cell), i++));
}
答案
InputStream = new FileInputStream(new File(“/ path / to / workbook.xlsx”));
工作簿工作簿= StreamingReader.builder()。redCacheSize(100).bufferSize(4096).open(is);
Sheet sheet = workBook.getSheetAt(0);
行firstRow = sheet.rowIterator()。next();
你可以使用这个lib:https://github.com/monitorjbl/excel-streaming-reader
好指南:Apache POI Streaming (SXSSF) for Reading
以上是关于Apache POI只读取大型Excel文件的第一行的主要内容,如果未能解决你的问题,请参考以下文章
java通过apache poi框架读取2007版Excel文件