poi 表格换行

需求
poi库,将word里的\n变成换行,这样才能把数据库里有换行的数据原样复制到word里,使用了run.addCarriageReturn();回车符,但是不起作用,所以用的是run.addBreak();
参考stackoverflow

代码
public void forverseTableCells(String sourceFile, String targetFile) {
    XWPFDocument doc = new XWPFDocument(new FileInputStream(sourceFile));
            for(XWPFTable table : doc.getTables()) {//表格
                for(XWPFTableRow row : table.getRows()) {//行
                    for(XWPFTableCell cell : row.getTableCells()) {//单元格 : 直接cell.setText()只会把文字加在原有的后面,删除不了文字
                        addBreakInCell(cell);
                    }
                }
            }
    FileOutputStream fos = new FileOutputStream(targetFile);  
    doc.write(fos);  
     fos.close();  
     System.out.println("结束");
}

private  void addBreakInCell(XWPFTableCell cell) {
            if(cell.getText() != null && cell.getText().contains("\n")) {
                for (XWPFParagraph p : cell.getParagraphs()) {
                    for (XWPFRun run : p.getRuns()) {//XWPFRun对象定义具有一组公共属性的文本区域
                        if(run.getText(0)!= null && run.getText(0).contains("\n")) {
                            String[] lines = run.getText(0).split("\n");
                            if(lines.length > 0) {
                                run.setText(lines[0], 0); // set first line into XWPFRun
                                for(int i=1;i<lines.length;i++){
                                    // add break and insert new text
                                    run.addBreak();//中断
//                                    run.addCarriageReturn();//回车符,但是不起作用
                                    run.setText(lines[i]);
                                }
                            }
                        }
                    }
                }
            }
————————————————
版权声明:本文为CSDN博主「qijingpei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qijingpei/article/details/83754483

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值