2013-03-04 82 views
0

我试图从所有Excel文档单元格(使用Apache POI)阅读评论。 当空(或缺少)单元格包含注释时,我有问题。apache poi - 阅读空白和缺少(空)单元的评论

,我发现目前唯一的解决办法是:

  • 迭代每一行到最后不是空列
  • 得到所有(即使是空的)细胞
  • 检查,如果细胞的评论是不是空的
  • 如果真:处理意见

一些代码:

if (row != null) { 
    cell = row.getCell(cellNum, Row.CREATE_NULL_AS_BLANK); 
    cellComment = cell.getCellComment(); 
    if (cellComment != null) 
    ... 
} 

主要问题是我无法从最后一个不为空的单元格之后的空行和注释中读取注释。 提高性能(与读取所有行单元格相比)会很好,但要点是要读取所有文档注释。

+1

我发现POI是无法使用和记录不当的。我建议Andy Khan的JExcel作为替代品。 – duffymo 2013-03-04 13:33:20

回答

0

您可以使用missingCellPolicy,row.getCell(int cellnum, MissingCellPolicy policy)阅读空白单元格或空单元格的注释,它允许您处理空白或空单元格。

例如在您的工作表中,假设第7行是空白的,第5列有一些评论(比如“Hello”),您需要阅读该评论。只需执行以下操作:

Comment comment = sheet.getRow(7).getCell(5, Row.CREATE_NULL_AS_BLANK).getCellComment(); 

System.out.println(comment.getString()); 

将打印“您好”。

+1

嗨,感谢您的回答,但我的问题是,我正在阅读许多文件,我不知道在哪里或甚至是否有单个文件中的任何评论。 – Tomqaz 2013-07-17 12:48:31