首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找Excel电子表格中的最后一行

查找Excel电子表格中的最后一行
EN

Stack Overflow用户
提问于 2010-04-15 21:18:40
回答 9查看 74.1K关注 0票数 19

我正在尝试使用Apache的POI for Java查找excel电子表格中最后一行的索引。

我认为使用getLastRowNum()getPhysicalNumberOfRows()应该可以做到这一点,但它们似乎没有给出正确的结果。例如,我有一个一行的电子表格,这两个函数返回值1140。另外两行电子表格的值为1162。

另一个问题是,我不能只查找第一个空行,因为在有效数据的行之间可能有空行。

那么有没有办法找到最后一行的索引呢?我想我可以要求数据之间不存在空行,但我希望有一个更好的解决方案。

Edit:对于记录,使用迭代器没有帮助。它只是迭代了1140/1162个假设行。

EN

回答 9

Stack Overflow用户

发布于 2010-04-16 00:34:53

我使用poi-3.6-20091214和一个后跟两个空行和三个占用行的test.xls获得了预期的输出:

代码语言:javascript
复制
InputStream myxls = new FileInputStream("test.xls");
Workbook book = new HSSFWorkbook(myxls);
Sheet sheet = book.getSheetAt(0);
System.out.println(sheet.getLastRowNum());

输出:4

票数 19
EN

Stack Overflow用户

发布于 2013-06-11 20:56:24

您可以使用以下方法获取原始行数。

代码语言:javascript
复制
HSSFSheet worksheet = workbook.getSheet("Role_Mapping");
int rowsNum = worksheet.getPhysicalNumberOfRows();
票数 10
EN

Stack Overflow用户

发布于 2017-10-11 12:56:59

我以前也遇到过同样的问题。它可能是由在Excel中编辑然后清空的Excel单元格引起的。一旦它们被触摸,它们就会显示为使用过的单元。

我使用这个技巧删除(而不仅仅是清空)这些单元格,并获得正确的返回行值:

  1. 打开Excel文件,转到预期的工作表。
  2. 选择最后一行+ 1。例如,您有12行数据,然后单击第13行。
  3. 选择工作表底部的整个行Ctrl-Shift-向下箭头并删除代码的所有选定行,然后检查返回值。

<

  1. >G215>

这不是POI库的问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2645566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档