Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading data from xlsx with Apache POI's SXSSFSheet

I want to read data ( cell values ) from a certain xlsx file using apachi poi. The code below creates the SXSSFWorkBook instance successfully and assigns db.xlsx ( my dummy xlsx). I have tried changing sheet numbers and double checking it with the getSheetNumber method to make sure the workbook is correctly assigned.

Next I want to assign a specific sheet (index 0 with name main) to SXSSFSheet instance, but currently it returns null. (I have both tried getSheetAt and getSheet methods).

SXSSFRow DummyRow;
SXSSFCell DummyCell;

int RowCount;
OPCPackage pkg = OPCPackage.open(blabla string adress);

XSSFWorkbook wb = new XSSFWorkbook(pkg);
Workbook MainBook = new SXSSFWorkbook(wb,100);

int a = MainBook.getNumberOfSheets();

SXSSFSheet MainSheet = (SXSSFSheet) MainBook.getSheetAt(0); 
RowCount = MainSheet.getLastRowNum();

What am I doing wrong?

Edit:

I have tried getSheetName method and had a positive result. So the problem is with reaching rows in Worksheet. so, the last line getLastRowNum() is not working.

like image 615
Ozan Avatar asked Sep 20 '12 13:09

Ozan


1 Answers

You can't. SXSSFWorkBook is write only, it doesn't support reading

For low memory reading of .xlsx files, you should look at the XSSF and SAX EventModel documentation

like image 198
Gagravarr Avatar answered Oct 08 '22 11:10

Gagravarr