127 apache poi3.11 写 word 中内嵌 表格换行的输出

前言

最近一个 地方的需求

需要再 单元格中 输出带换行回车的内容

然后 找了一下 相关 demo, 基本上是 使用 \r\n 或者 <br> 或者 <w:br/> 来进行处理

但是 测试了一通 之后, 发现 都不行

来自于网上的 demo 不可用

复制代码
/**
 * Test18WordBreakDemo
 *
 * @author Jerry.X.He <970655147@qq.com>
 * @version 1.0
 * @date 2024-05-14 09:07
 */
public class Test18WordBreakDemo {

    public static void main(String[] args) throws Exception {
        XWPFDocument document = new XWPFDocument();
        XWPFTable table = document.createTable();
        XWPFTableRow row = table.getRow(0);
        XWPFTableCell cell = row.createCell();

        String contentWithBreak = "First line<br>Second line";
        // 替换HTML的<br>为对应的Unicode换行符也可以,但推荐使用POI对HTML的支持
        // String contentWithBreak = "First line\nSecond line";

        cell.getParagraphs().get(0).setAlignment(ParagraphAlignment.LEFT);
        cell.getParagraphs().get(0).setSpacingBefore(200);
        cell.getParagraphs().get(0).setSpacingAfter(200);
        cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
        CTShd ctshd = cell.getCTTc().addNewTcPr().addNewShd();
        ctshd.setColor("auto");
        ctshd.setFill("99CCFF");
        cell.getParagraphs().get(0).setStyle("TableContents");

        cell.setText(contentWithBreak);
        cell.getParagraphs().get(0).setStyle("YourCustomStyle");

        FileOutputStream out = new FileOutputStream("Test18WordBreakDemo.docx");
        document.write(out);
        out.close();
    }

}

<br/> 输出结果如下

或者 \r\n 输出如下, 但是 不是期望的效果

正确实现效果的 demo

后面看了一下 正确的结构, 仿写 代码如下

复制代码
/**
 * Test18WordBreakDemo
 *
 * @author Jerry.X.He <970655147@qq.com>
 * @version 1.0
 * @date 2024-05-14 09:07
 */
public class Test18WordBreakDemo {

    public static void main(String[] args) throws Exception {
        // 创建Word文档对象
        XWPFDocument document = new XWPFDocument();

        // 创建表格
        XWPFTable table = document.createTable();

        // 添加行
        XWPFTableRow row = table.getRow(0);

        // 添加单元格
        XWPFTableCell cell = row.createCell();

        setTextInCell(cell, Arrays.asList("第一行", "第二行", "第三行"));

        // 保存文档
        FileOutputStream out = new FileOutputStream("./WordTableExample.docx");
        document.write(out);
        out.close();
    }

    public static void setTextInCell(XWPFTableCell cell, List<String> textList) {
        for (String text : textList) {
            XWPFParagraph paragraph = cell.addParagraph();
            paragraph.setAlignment(ParagraphAlignment.CENTER);
            XWPFRun run = paragraph.createRun();
            run.setText(text);
        }
    }

}

输出结果如下

相关推荐
城数派21 小时前
1901-2025年中国省市县三级逐年平均气温数据集(Shp/Excel 格式)
excel
DS随心转小程序1 天前
Gemini只能导出了一部分Word文档,很少的一部分,不是我这个窗口所有的对话内容?
开发语言·人工智能·c#·word·豆包·deepseek·ai导出鸭
DS随心转APP1 天前
【 AI做的表格怎么导出 】?AI 导出鸭让数据流转回归优雅
人工智能·chatgpt·数据挖掘·回归·word·ai导出鸭
Am-Chestnuts1 天前
DeepSeek 回答怎么保存成 PDF?用DS随心转把对话导出为可打印文档
pdf·word
一晌小贪欢1 天前
Python办公18:PDF 转 Word——利用 OCR 技术批量提取不可编辑的文档内容
开发语言·python·pdf·word·excel·数据可视化·python办公
一晌小贪欢1 天前
Python办公17:暴力拆分——按页数或指定范围提取 PDF 核心页面
java·开发语言·python·pdf·excel·数据可视化·python办公
AI英德西牛仔2 天前
文心 Excel 与“AI 导出鸭”:PC 端批量导出方案的技术解构
人工智能·excel·deepseek·ai导出鸭
Am-Chestnuts2 天前
AI 对话里的表格怎么导出成 Excel 还能筛选排序?用DS随心转把数据整理成可分析表格
大数据·人工智能·excel
Metaphor6922 天前
使用 Python 读取和删除 Excel 文件属性
python·excel
weixin_469273812 天前
银行流水 PDF 转 Excel 或者 CSV 完整指南
人工智能·pdf·excel