Apache poi HSSF返回不正确的物理行数

时间:2015-06-18 05:09:18

标签: java excel apache-poi

我正在处理用户给定的Excel文件(.xls)并使用Apache poi HSSF来阅读工作表。 Excel物理上包含16行。

  • 第13行是空的。
  • 第14行有数据
  • 第15行为空
  • 第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();

1 个答案:

答案 0 :(得分:0)

这样做

int rows = 0;
if(sheet.getPhysicalNumberOfRows()>0)
   rows=sheet.getLastRowNum() - sheet.getFirstRowNum()+1;

希望这会有所帮助!

相关问题