poi-tl模板导出word踩坑

1.不能操作doc文档

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>5.2.0</version>
</dependency>
public static void docToDocx(String path,String outPath){
    Document dc = new Document();
    dc.loadFromFile(path);
    dc.saveToFile(outPath, FileFormat.Docx);
    dc.close();
}
Spire.docToDocx("test.doc","test.docx");

2.列表无法遍历

<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>1.12.0</version>
</dependency>
InputStream is = new FileInputStream("test.docx");

LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder()
        .bind("list", policy).build();
XWPFTemplate template = XWPFTemplate.compile(is,config)
        .render(data);

 表头表达式用{{list}},明细用[item],表达式必须放在相邻行,表头为合并单元格时找地方放,不能放合并后的格子里。

3.模板制作时表格大小会变

单元格右键,

行高设置固定值 

4、列表插入数据时会新增行,不能填充模板内空白行,对于复杂模板不能删除的空白行无法处理。freemarker存在同样问题。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
POI-tl是一个基于Apache POIJava库,用于动态生成Word文档。它提供了一种简单而强大的方式来根据Word模板生成具有动态内容的文档。在使用POI-tl进行动态导出Word文档时,你需要在模板中定义需要替换的标记,并在代码中使用POI-tl的API来填充这些标记。 首先,你需要在项目中添加POI-tl的依赖。具体的依赖配置可以参考\[1\]中提供的文章。 然后,你需要准备一个Word模板,其中包含需要动态填充的内容。在模板中,你可以使用自定义的标记来标识需要替换的部分。这些标记可以是任意的字符串,但需要与代码中的标记保持一致。 接下来,在代码中,你可以使用POI-tl的API来加载模板并替换其中的标记。你可以使用POI-tl提供的方法来设置文本、图片、表格、页眉、页脚等内容。具体的使用方法可以参考\[3\]中提供的教程。 最后,你可以将生成的Word文档导出到文件或直接在浏览器中下载。你可以使用POI-tl提供的方法来实现导出功能。具体的导出方法可以参考\[2\]中提供的代码示例。 总结起来,使用POI-tl动态导出Word文档的步骤包括添加依赖、准备模板、替换标记、导出文档。希望这些信息对你有帮助。 #### 引用[.reference_title] - *1* *2* [SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格、合并单元格)](https://blog.csdn.net/qq_26383975/article/details/112238802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [poi-tl导出word](https://blog.csdn.net/weixin_43580824/article/details/129549483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值