我正在尝试使用Apache的POI for Java查找excel电子表格中最后一行的索引。
我认为使用getLastRowNum()或getPhysicalNumberOfRows()应该可以做到这一点,但它们似乎没有给出正确的结果。例如,我有一个一行的电子表格,这两个函数返回值1140。另外两行电子表格的值为1162。
另一个问题是,我不能只查找第一个空行,因为在有效数据的行之间可能有空行。
那么有没有办法找到最后一行的索引呢?我想我可以要求数据之间不存在空行,但我希望有一个更好的解决方案。
Edit:对于记录,使用迭代器没有帮助。它只是迭代了1140/1162个假设行。
发布于 2010-04-16 00:34:53
我使用poi-3.6-20091214和一个后跟两个空行和三个占用行的test.xls获得了预期的输出:
InputStream myxls = new FileInputStream("test.xls");
Workbook book = new HSSFWorkbook(myxls);
Sheet sheet = book.getSheetAt(0);
System.out.println(sheet.getLastRowNum());输出:4
发布于 2013-06-11 20:56:24
您可以使用以下方法获取原始行数。
HSSFSheet worksheet = workbook.getSheet("Role_Mapping");
int rowsNum = worksheet.getPhysicalNumberOfRows();发布于 2017-10-11 12:56:59
我以前也遇到过同样的问题。它可能是由在Excel中编辑然后清空的Excel单元格引起的。一旦它们被触摸,它们就会显示为使用过的单元。
我使用这个技巧删除(而不仅仅是清空)这些单元格,并获得正确的返回行值:
<
这不是POI库的问题。
https://stackoverflow.com/questions/2645566
复制相似问题