poi版本3.12以上添加多个批注报错的问题

5 篇文章 0 订阅

添加批注的代码如下:

public static void addHSSFComment(Cell cell,String value){

        Comment comment = cell.getSheet().createDrawingPatriarch().createCellComment(new HSSFClientAnchor(0, 0, 0,0, (short) 3, 3, (short) 5, 6));
        // 输入批注信息
        comment.setString(new HSSFRichTextString(value));
        // 添加作者,选中B5单元格,看状态栏
        comment.setAuthor("toad");
        // 将批注添加到单元格对象中
        cell.setCellComment(comment);
    }

该代码在3.8版本运行是正常的,但是升级到3.12或者以上版本时,一个创建多个批注时出现报错,报错信息如下

Multiple cell comments in one cell are not allowed

意思大概是多个单元格的批注,位置区域不能一样,于是找到如下解决办法:

public static void addXSSFComment(Cell cell,String value){
        Sheet sheet = cell.getSheet();
        ClientAnchor anchor = new XSSFClientAnchor();
        //关键修改
        anchor.setDx1(0);
        anchor.setDx2(0);
        anchor.setDy1(0);
        anchor.setDy2(0);
        //根据cell位置设置批注展示区域
        anchor.setCol1(cell.getColumnIndex());
        anchor.setRow1(cell.getRowIndex());
        anchor.setCol2(cell.getColumnIndex()+5);
        anchor.setRow2(cell.getRowIndex()+6);
        
        Drawing drawing = sheet.createDrawingPatriarch();

        Comment comment = drawing.createCellComment(anchor);
        // 输入批注信息
        comment.setString(new XSSFRichTextString(value));
        // 添加作者
        comment.setAuthor("si_er");
        // 将批注添加到单元格对象中
        cell.setCellComment(comment);
    }

Java POI 是一款用于操作 Microsoft Office 文档的开源库。通过使用 Java POI,我们可以使用 Java 语言来编辑 Word 文档,并对文档进行批注。 要给 Word 文档添加批注,首先我们需要创建一个 XWPFDocument 对象,该对象代表了一个 Word 文档。然后,我们可以通过调用 XWPFDocument 对象的 createComment 方法来创建一个批注。 创建批注之后,我们可以使用 XWPFComment 对象的 setText 方法来设置批注的内容。此外,我们还可以使用 XWPFComment 对象的 setAuthor 方法来设置批注的作者。 接下来,我们需要将批注添加到 Word 文档中。我们可以通过调用 XWPFDocument 对象的 addComment 方法来将批注添加到文档中。这个方法将返回一个 CTComment 对象,我们可以使用该对象来设置批注的位置和显示方式。 最后,我们需要将修改后的 Word 文档保存到文件中。可以通过调用 XWPFDocument 对象的 write 方法来实现。在保存之前,我们还可以使用 XWPFDocument 对象的 setProperty 方法来设置文档的属性。 总结来说,使用 Java POI 给 Word 添加批注的步骤如下: 1. 创建 XWPFDocument 对象来代表 Word 文档。 2. 调用 XWPFDocument 的 createComment 方法创建一个批注,并设置批注的内容和作者。 3. 调用 XWPFDocument 的 addComment 方法将批注添加到文档中。 4. 调用 XWPFDocument 的 write 方法将修改后的文档保存到文件中。 通过上述步骤,我们可以使用 Java POI 给 Word 文档添加批注,并实现对文档的批注功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值