如何使用POI SXSSF读取大型电子表格

时间:2012-04-07 09:47:04

标签: java file xls

我正在尝试使用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); 
    } 
 } 

2 个答案:

答案 0 :(得分:10)

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/xssf/eventusermodel/XLSX2CSV.java

答案 1 :(得分:0)

SXSSF(自3.8-beta3起)–是XSSF的API兼容流扩展,可用于必须制作非常大的电子表格

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