- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试将 CellComments 从同一工作簿中的一张工作表复制到另一张工作表时,检索 CellComment ClientAnchor 会收到 NPE。
java.lang.NullPointerException at org.apache.poi.xssf.usermodel.XSSFComment.getClientAnchor(XSSFComment.java:220)
使用的代码:
for (Entry<CellAddress, ? extends Comment> e : sheet.getCellComments().entrySet())
{
CellAddress addr = e.getKey();
Comment comment = e.getValue();
ClientAnchor anchor = comment.getClientAnchor();
这是POI的问题还是检索码的问题?
请注意,以下代码有效并检索 ClientAnchor。
for (CellAddress addr : sheet.getCellComments().keySet())
{
Comment comment = sheet.getCellComment(addr);
ClientAnchor anchor = comment.getClientAnchor();
最佳答案
这绝对是apache poi
的问题,至少有apache poi
版本3.17
。这类问题是我没有加入 apache poi
的原因之一的开发者列表。
以下所有内容都是关于apache poi
版本3.17
.
如果XSSFComment.java:220抛出 NPE,然后 _vmlShape
是 null
。那么什么是_vmlShape
?这是一个com.microsoft.schemas.vml.CTShape
通常设置为 XSSFComment
的构造函数。
public XSSFComment(CommentsTable comments, CTComment comment, CTShape vmlShape) .
那么为什么会是 null
值为 Entry
的XSSFSheet.getCellComments().entrySet()
?
在 XSSFSheet
public Map getCellComments()返回sheetComments.getCellComments()
。那么什么是sheetComments
?这是一个org.apache.poi.xssf.model.CommentsTable
这是在 reading the sheet's package part from the worbook 时阅读的.
返回的是什么sheetComments.getCellComments()
?它返回 final TreeMap<CellAddress, XSSFComment> map
其中每个值都是 XSSFComment
。但所有这些XSSFComment
是新建的,具有 CTShape vmlShape
=null
:map.put(e.getKey(), new XSSFComment(this, e.getValue(), null));
.
嗯,这就是为什么 _vmlShape
是null
和XSSFComment.java
代码行 220 抛出了 NPE。
为什么sheet.getCellComment(addr)
作品有 addr
一个CellAddress
得到相同的 key TreeMap<CellAddress, XSSFComment>
?
因为程序员已经知道 VMLDrawing
的必要性,参见 public XSSFComment getCellComment(CellAddress address) 。
关于java - 从 CellComment 检索 ClientAnchor 时的 POI 3.17 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560755/
尝试将 CellComments 从同一工作簿中的一张工作表复制到另一张工作表时,检索 CellComment ClientAnchor 会收到 NPE。 java.lang.NullPointerE
我是一名优秀的程序员,十分优秀!