我正在尝试编写一个读取Excel模板并开始在某个行索引处写入的函数。但是,我发现编号会跳过模板中的空白行。有没有办法在迭代过程中计算空行?
我试图找到一个等同于missing cell policy的行。我也尝试了这两种迭代方式:
//simple for loop
for (Row row : sheet1) {
for (Cell cell : row) {
...
}
}
//iterator
while (rows.hasNext()) {
XSSFRow row = ((XSSFRow) rows.next());
...
}
两者似乎都忽略了空行。这会导致问题,因为我的模板有空白行来分隔会抛出行索引的部分,我必须手动更正目标索引,以执行“在表格中第5行开始写入”等任务。
答案 0 :(得分:2)
根据我的理解,你的问题是你有一些行是空白的,但是你无法找出空行(即没有单元格)。如果我是对的,你可以使用以下检查(我以为我没有检查过,但我认为它应该有用)。
if(row!=null){
for (int cellNo = 0; cellNo < lastColumn; cellNo ++){
Cell cell = row.getCell(cellNo , Row.RETURN_BLANK_AS_NULL);
if(cell == null){
//Code for the Blank Rows
}
}
}
答案 1 :(得分:0)
试试这个。它会将空值显示为空白。
for(Row blankRow : sheet)
{
for(int cn=1; cn<blankRow.getLastCellNum()-1; cn++)
{
Cell cells = blankRow.getCell(cn, Row.CREATE_NULL_AS_BLANK);
}
}