如何将单元格注释复制到新单元格(复制整个工作表时)



我正在尝试将CellComment复制到一个新的单元格(使用Apache POI)。我知道我必须创建新的评论(而不是将旧的评论设置在新的单元格中),但我似乎无法找到如何复制锚点。

private void createComment(Cell aNewCell, Comment theOldComment) {
    CreationHelper createHelper = aNewCell.getSheet().getWorkbook().getCreationHelper();
    ClientAnchor anchor = createHelper.createClientAnchor();
    // How to get the old CellComment anchor for x1, c2, y1, y2???
    Drawing drawing = aNewCell.getSheet().createDrawingPatriarch();
    Comment aNewComment = drawing.createCellComment(anchor);
    aNewComment.setString(theOldComment.getString());
    aNewCell.setCellComment(aNewComment);
}

使用Patriarch而不是CreationHelper。从HSSFPatriarch的对象创建Anchor,并将这些值作为参数传递给createAnchor函数。希望这能有所帮助。

 HSSFPatriarch drawing = sheet.createDrawingPatriarch();
 ClientAnchor anchor = drawing.createAnchor(10, 20, 30, 40, (short)4, 2, (short)6, 5);

希望这能有所帮助。

 private void createComment(HSSFCell aNewCell, Comment theOldComment) {
        HSSFPatriarch drawing = aNewCell.getSheet().getDrawingPatriarch();
        ClientAnchor anchor = drawing.createAnchor(drawing.getChildren().get(0).getAnchor().getDx1(),
                drawing.getChildren().get(0).getAnchor().getDx2(), drawing.getChildren().get(0).getAnchor().getDy1(),
                drawing.getChildren().get(0).getAnchor().getDy2(), (short)4, 2, (short)6, 5);
        Comment aNewComment = drawing.createCellComment(anchor);
        aNewComment.setString(theOldComment.getString());
        aNewCell.setCellComment(aNewComment);
    }

最新更新