Apache POI:不允许在一个单元格中使用多个单元格注释

Apache POI: Multiple cell comments in one cell are not allowed

我正在尝试向单元格添加评论。该代码适用于 2 行。但是当行号达到第三时,它开始给我错误:-

java.lang.IllegalArgumentException: Multiple cell comments in one cell are not allowed

我在读取单元格值时检测到异常时添加了注释。给出的是我用来添加评论的方法:-

private void cellException(Sheet datatypeSheet, CellStyle cellErrorStyle, Row invCurrentRow,
        int invCellNum, String mainMessage)
{

    Cell mainCell = invCurrentRow.getCell(invCellNum);

    if (ExcelUtility.checkIfCellValueAbsent(mainCell))
        mainCell = invCurrentRow.createCell(invCellNum);

    mainCell.setCellStyle(cellErrorStyle);

    Comment mainComment = mainCell.getCellComment();

    if (Util.isNullOrEmpty(mainComment))
        mainComment = datatypeSheet.createDrawingPatriarch().createCellComment(
                new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6));
    mainComment.setString(new XSSFRichTextString(mainMessage));
    mainCell.setCellComment(mainComment);
    datatypeSheet.autoSizeColumn(mainCell.getColumnIndex());
}

此代码适用于两行。我不明白第三行出了什么问题。

我正在使用 XSSFWorkbook,以下是我在我的 springboot 项目中添加的依赖项:-

<dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>

我试着搜索答案,我找到了一个我认为有用但没有用的答案:-

Multiple comments apache poi

您正在使用从列索引 3、行索引 3 开始的相同锚点创建所有单元格注释,即 D4。所以你所有的单元格评论都属于 D4。然后,如果您尝试使用相同的锚点创建单元格评论,并且 D4 中已经有评论,则会导致错误:

java.lang.IllegalArgumentException: Multiple cell comments in one cell are not allowed, cell: D4

对每个单元格评论使用不同的锚点:

...
  if (mainComment == null)
   mainComment = datatypeSheet.createDrawingPatriarch().createCellComment(
                  //new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6));
                  new XSSFClientAnchor(0, 0, 0, 0, mainCell.getColumnIndex(), mainCell.getRowIndex(), mainCell.getColumnIndex()+2, mainCell.getRowIndex()+3));
...