我正在使用Apache POI java,希望获得不为空的总行数。我成功地处理了一整行及其所有列。现在我假设我得到了一个包含多行而不是一个row...so的excel工作表,该如何处理呢?我在考虑获得总行数(int,n),然后循环到i<=n,但不确定。
非常欢迎您的建议:)
注意: Apache POI版本是3.8。我不是在处理Xlsx format...only xls。
是的,我试过这个代码,但在return....which中得到20是不可能的,因为我只有5行
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);发布于 2012-10-30 18:19:58
for (int i = 0; i <= sheet.getLastRowNum(); i++) {
if ((tempRow = sheet.getRow(i)) != null) {
//Your Code Here
}
}发布于 2013-11-20 23:32:59
问题是POI将空行视为物理行。在Excel中有时会发生这种情况,虽然肉眼看不到这些行,但它们肯定是存在的。
如果您打开Excel工作表并选择数据下面的所有内容,然后删除它(我知道它看起来是空的,但无论如何都要这样做),POI将返回正确的数字。
发布于 2014-09-12 14:40:43
除了getLastRowNum()之外,您可能还想使用getPhysicalNumberOfRows()?
https://stackoverflow.com/questions/9963912
复制相似问题