我正在处理用户给定的Excel文件(.xls)并使用Apache poi HSSF来阅读工作表。 Excel物理上包含16行。
在这种情况下,worksheet.getPhysicalRows()
返回13.
同时,worksheet.getLastRowNum()
返回16。
请注意,如果我删除了第13行,getPhysicalRows()
会返回14
如果我也删除了第16行,getPhysicalRows()
仍然会返回14。
根本不读取包含有效数据的最后一行。
您是否在XLS中遇到过这种行为?
编辑:我不确定此代码是否可以帮助解决问题。
excelDocumentStream = new FileInputStream(new File(xlFilePath));
POIFSFileSystem fsPOI = new POIFSFileSystem(new BufferedInputStream(excelDocumentStream));
workbook = new HSSFWorkbook(fsPOI);
int numOfRows = workSheet.getPhysicalNumberOfRows();
int lastRow = workSheet.getLastRowNum();
答案 0 :(得分:0)
这样做
int rows = 0;
if(sheet.getPhysicalNumberOfRows()>0)
rows=sheet.getLastRowNum() - sheet.getFirstRowNum()+1;
希望这会有所帮助!