I am trying to read an xls file by using SXSSF. I have read about SXSSF, but do not understandexactly how to use it. So I am running into some problems.
Can anybody help me with the java code for reading large xls files (some 100,000 rows and 7-8 sheets).
(Edit from the comments)
Here is what I have tried:
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);
}
}
SXSSF is only to write large excel files (xlsx) and not to read.
To read large excel files, please refer to SAX parsing based event handling API of Apache POI at: https://poi.apache.org/components/spreadsheet/how-to.html.
A very good working example is present at: https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/examples/xssf/eventusermodel/XLSX2CSV.java
SXSSF (since 3.8-beta3) – is an API-compatible streaming extension of XSSF to be used when very large spreadsheets have to be produced
As you can see, it is clearly specified SXSSF is used when large spreadsheets are to be produced. You can use XSSF. It is similar and also is good enough.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With