【踩坑笔记】java使用poi导出word文档换行

poi导出word,没有使用模板替换方式,而是设置创建paragraph和cell生成word。单元格内容填充的段落没有自动换行,原来换行是这么写的:

infoTableRow.getCell(1).setText(changeLine(entry.getValue()));
    /*** word表格内换行* @param value* @return*/private static String changeLine(String value) {StringBuffer buffer = new StringBuffer();if (value.indexOf("\n") > 0) {String[] strings = value.split("\n");for (int i = 0; i < strings.length; i++) {if (i == 0) {buffer.append(strings[i].trim());} else {buffer.append("\r\n");buffer.append(strings[i].trim());}}} else {buffer.append(value);}return buffer.toString();}

java换行符“\n”在word文档中不生效,使用“\r”,“\r\n”,“(char)11”,“^p”,“< br>”,“<w:br>”,“<w:p><w:p/>” 等替换均无法实现单元格内换行的功能(“\r\n”没有换行,但是有空格效果)。

实现单元格内自动换行:

String value = entry.getValue();
// 设置单元格内段落
XWPFParagraph contentParagraph = infoTableRow.getCell(1).getParagraphs().get(0);
XWPFRun run = contentParagraph.createRun();
setWrap(value, contentParagraph, run);
    /*** 设置换行** @param value     需要换行的内容* @param paragraph 当前段落* @param run*/private static void setWrap(Object value, XWPFParagraph paragraph, XWPFRun run) {if (((String) value).indexOf("\n") > 0) {//设置换行String[] text = value.toString().split("\n");run = paragraph.insertNewRun(0);for (int f = 0; f < text.length; f++) {if (f == 0) {run.setText(text[f].trim());} else {
//                    run.addCarriageReturn();//硬回车// 换行run.addBreak();run.setText(text[f].trim());}}} else {run.setText((String) value);}}

单元格cell相当于一个小的document。原始代码中使用setText()方法填充内容,为了实现分行效果修改为paragraph。addCarriageReturn依然没有实现单元格内分行的效果(单元格外可以),更改为addBreak()分行正常。
参考链接:https://blog.csdn.net/bdy9600/article/details/45688855

【踩坑笔记】java使用poi导出word文档换行相关推荐

  1. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

  2. JAVA使用POI导出Word文档和Excel文档

    导包 注意:POI包的版本,不同版本poi导出API会有差别!!!! <dependency><groupId>org.apache.poi</groupId>&l ...

  3. Java使用POI导出Word文档

    一.主要pom依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-oox ...

  4. java利用poi导出word文档

    项目中,有时候需要使用poi实现将固定数据导入word中 效果图: 代码: package poiword;import java.io.File; import java.io.FileOutput ...

  5. [实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能)

    [实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能) 基于Apache POI对Word进行操作 一.基于Apache POI封装的word文档工具V1. ...

  6. java用poi导出wrod文档支持图片并解释代码

    使用POI(Poor Obfuscation Implementation,即弱混淆实现)库可以很方便地在Java代码中导出Word文档,同时还支持插入图片. 下面是一个简单的例子,它创建了一个包含一 ...

  7. java利用POI替换word文档中的标签

    java利用POI替换word文档中的标签 <dependency><groupId>org.apache.poi</groupId><artifactId& ...

  8. 使用POI导出word文档

    使用POI导出word文档 步骤一.创建一个需要导出的word文档模板.将表里需要填充的数据对应好要填充的键最后在表的最前方加入一个书签(一个table一个书签) 步骤二.工具类 public cla ...

  9. JAVA根据word模版使用poi导出word文档,包含图片、文字

    模版word文件,内容和表格都已处理,保留了字体和样式,图片可以指定大小,docx类型的模版字段有问题的话,整个字段复制进去即可,不要手敲${} 生成的word文件 /*** word工具类** @a ...

  10. java按照模板导出word 文档

    需求导出表格数据到word 文档中 新建word 文档 通过${ValueList1.value1} 来往里面添加数据, ValueList 即每一行数据的集合 保存word 文档,另存为 xml 格 ...

最新文章

  1. ubuntu 14.10 使用fcitx输入法
  2. node开发环境(mac)和线上环境(linux)搭建
  3. 机器学习笔记:参数超参数
  4. 数据湖三种方案的流行度调查
  5. rxjs里concatMap operators的用法
  6. 前端学习(1439):vue的helloworld
  7. ipython notebook超级好用
  8. fatal error: alsa/asoundlib.h: 没有那个文件或目录
  9. 深度学习将灰度图着色_使用DeOldify着色和还原灰度图像和视频
  10. EXcel 2016高级VBA编程下载
  11. 单片机的c语言程序设计与应用考题,单片机的C语言程序设计与应用—基于Proteus仿真(第4版)...
  12. error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“: h
  13. 被“樊登读书”、“得到”与“混沌大学”围剿的创业者们
  14. Python:快速裁剪PDF页面
  15. 如何快速备份微信聊天记录到电脑
  16. 在 Windows 下关闭135/139/445端口的图文方法
  17. 领英给好友群发消息的方法和细节
  18. 不撞南墙不回头——树形动态规划(树规)
  19. Simscape物理网络建模的基本原理
  20. 树莓派4b入门之开发RFID系统—两种MFRC522读写脚本

热门文章

  1. 思科实验4.4.1.2-Packet Tracer - 综合技能练习
  2. Buffon投针试验【布丰】
  3. python打印菱形_python打印菱形
  4. 淘宝评论爬取(2020-08-21)update 2020-09-18
  5. 服务器到内地更快的美国HS网络服务器
  6. 我的007之skyfall歌词鉴赏及翻译
  7. 《最伟大的作品》,解密周杰伦新专辑背后的数据密码
  8. Beta版本 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。
  9. 什么是知识库管理系统?如何搭建企业知识库系统?
  10. 记录一下Unity学习中的一些奇异事件