富文本轉word
- 環境
- 使用poi-tl-ext的原因
- 富文本轉word代碼
環境
<dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version>
</dependency>
- poi-tl-ext已經包含了poi,poi-tl等jar包,所以無需重復導入
- poi-tl文檔鏈接
- poi-tl-ext github鏈接
使用poi-tl-ext的原因
- 對比poi原生來說簡單方便操作
- 對比收費軟件來說,開源免費,而且效果也很牛
富文本轉word代碼
public class RichTextParser {public static void parseToDocx(String content, FileOutputStream fileOutputStream) throws IOException {HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();Configure configure = Configure.builder().bind("key", htmlRenderPolicy).build();Map<String, Object> data = new HashMap<>();data.put("key", content);XWPFTemplate.compile("D://input.docx", configure).render(data).writeAndClose(fileOutputStream);}
}
- content 富文本內容
- fileOutputStream 輸出流,例如輸出到本地磁盤D://2.docx上面
- D://input.docx 是一個模板docx

- key 是用來綁定富文本內容(可以任意起名字只要能和代碼模板對應即可),由于我需要導出的富文本內容是隨機且不定格式,所以使用一個key包裹即可
- HtmlRenderPolicy 就是poi-tl-ext中富文本導出為word的操作插件,這里需要吹捧一下作者,真的好牛
- poi-tl 還存在各種其他插件,例如表格插件等,適用于各種導出word的操作,還可以自定義插件,也是牛的
- 富文本部分內容如下
<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><strong>xxx年度安全生產教育培訓工作計劃</strong></span></p>\n" +"<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 10pt; color: #e67e23;\">(模板,可上傳企業自有制度或修改模板)</span></span></p>\n" +"<p> </p>\n" +"<p><span style=\"font-size: 14pt;\"> <span style=\"color: #ba372a;\">為進一步規范公司安全宣傳和教育培訓工作,不斷提高公司員工安全生產意識和安全素質,增強安全生產法制觀念,有力推動公司安全生產基礎建設、安全生產誠信建設、安全生產標準化建設和企業安全文化建設,確保今年的安全生產目標指標的實現,特制定本計劃如下:</span></span></p>
- 導出內容如下
