首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache POI行数

Apache POI行数
EN

Stack Overflow用户
提问于 2012-04-01 19:12:07
回答 5查看 35.1K关注 0票数 7

我正在使用Apache POI java,希望获得不为空的总行数。我成功地处理了一整行及其所有列。现在我假设我得到了一个包含多行而不是一个row...so的excel工作表,该如何处理呢?我在考虑获得总行数(int,n),然后循环到i<=n,但不确定。

非常欢迎您的建议:)

注意: Apache POI版本是3.8。我不是在处理Xlsx format...only xls。

是的,我试过这个代码,但在return....which中得到20是不可能的,因为我只有5行

代码语言:javascript
复制
FileInputStream fileInputStream = new FileInputStream("COD.xls");
            HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
            HSSFSheet worksheet = workbook.getSheet("COD");
            HSSFRow row1 = worksheet.getRow(3);
            Iterator rows = worksheet.rowIterator(); 
            int noOfRows = 0;
            while( rows.hasNext() ) {
                HSSFRow row = (HSSFRow) rows.next();
                noOfRows++;                
            }
            System.out.println("Number of Rows: " + noOfRows);
EN

回答 5

Stack Overflow用户

发布于 2012-10-30 18:19:58

代码语言:javascript
复制
for (int i = 0; i <= sheet.getLastRowNum(); i++) {
    if ((tempRow = sheet.getRow(i)) != null) {
           //Your Code Here
    }
}
票数 7
EN

Stack Overflow用户

发布于 2013-11-20 23:32:59

问题是POI将空行视为物理行。在Excel中有时会发生这种情况,虽然肉眼看不到这些行,但它们肯定是存在的。

如果您打开Excel工作表并选择数据下面的所有内容,然后删除它(我知道它看起来是空的,但无论如何都要这样做),POI将返回正确的数字。

票数 5
EN

Stack Overflow用户

发布于 2014-09-12 14:40:43

除了getLastRowNum()之外,您可能还想使用getPhysicalNumberOfRows()?

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

https://stackoverflow.com/questions/9963912

复制
相关文章

相似问题

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