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);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值