Đin*_*hâu 7 java apache excel apache-poi
Apache POI 是否为我们提供了任何函数来计算 Excel 文件工作表中“非空”行的数量?
第一次,我有一个包含 10 个数据行的 Excel 工作表,函数 worksheet.getPhysicalNumberOfRows() 返回确切的数字 (10)。但在那之后,我删除了 3 行,然后该函数仍然得到 10 行。也许总行数被 POI 缓存在任何地方。getPhysicalNumberOfRows() 是什么意思?正如其 API 所描述的:“返回物理定义的行数(不是工作表中的行数)”,但我不明白“物理定义”是什么意思。你能帮我解决这个问题吗?
非常感谢!
如果通过 worksheet.removeRow(Row row) 删除行,则物理行数应为 7。
POI 使用地图来存储工作表的行。这张地图是物理部分。请参阅http://www.google.com/codesearch/p?hl=de#WXzbfAF-tQc/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
对于逻辑空行,尝试
int notNullCount = 0;
Sheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() != Cell.CELL_TYPE_BLANK) {
if (cell.getCellType() != Cell.CELL_TYPE_STRING ||
cell.getStringCellValue().length > 0) {
notNullCount++;
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13029 次 |
| 最近记录: |