13

我正在尝试使用 SXSSF 读取 xls 文件。我已经阅读了有关 SXSSF 的信息,但不明白如何使用它。所以我遇到了一些问题。

任何人都可以帮助我阅读大型 xls 文件(大约 100,000 行和 7-8 张)的 java 代码。

(从评论中编辑)

这是我尝试过的:

Workbook workBook = new SXSSFWorkbook(200); 
workBook = WorkbookFactory.create(inputStream); 
Sheet sheet = workBook.getSheetAt(0); 
int totalRows = sheet.getPhysicalNumberOfRows(); 

for (int i=0; i<totalRows; i++) { 
    Row row = sheet.getRow(i); 
    int totalCols = row.getPhysicalNumberOfCells(); 
    for(int j=0; j<totalCols; j++) { 
        Cell cell = row.getCell(j); 
    } 
 } 
4

2 回答 2

21

SXSSF 仅用于写入大型 excel 文件 (xlsx),而不用于读取。

要读取大型 excel 文件,请参阅 Apache POI 的基于 SAX 解析的事件处理 API: https ://poi.apache.org/components/spreadsheet/how-to.html 。

一个非常好的工作示例位于: https ://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java

于 2015-07-01T17:07:09.367 回答
1

SXSSF(自 3.8-beta3 起)– 是 XSSF 的 API 兼容的流式扩展,可在必须生成非常大的电子表格时使用

如您所见,当要生成大型电子表格时,明确指定使用 SXSSF。您可以使用XSSF。它是相似的,也足够好。

于 2020-04-02T12:56:06.307 回答