[编程] POI-TL 根据模版生成Word文档的一些使用技巧汇总

1. 我想生成动态目录怎么办?

经过我这边的测试与实践,比较好用的就是通过 占位符 生成一段指令,让我们在打开Word文档之后弹窗提示更新目录域。缺点:每次打开都会提示,如果选择否,目录则不生成。优点:每次提示如果选择是,会自动生成目录并打开导航窗口,使用起来还算方便。

题外话:我这边还试了通过先生成目录,然后代码里生成内容后触发更新的方式,依旧会有弹窗。还搜到过一种避免弹窗的方式,然并卵。乖乖用第一种吧,亲。

(有好的方法记得分享一下哦)

那么怎么实现呢?下面给出教程。

1st:在你需要生成目录的地方添加占位符,比如 { {toc}},如下图所示:

2nd:前文说过了,其实是在指定位置插入一段指令触发Word自动生成目录的功能。所以需要你在文档内容中,需要作为标题的地方都要使用Word中的标题1,标题2,标题3......格式进行标识。

3rd:准备好文档模版内容的实体类后,需要再加入一个字段 toc (字段名与模版中的占位符一致)。如:

/**
 * 模版数据实体.
 *
 * @author linmu
 */
public class TmplateData {

    /**
     * 目录.
     */
    private String toc;
    
    // ... 以下为其他字段内容以及Getter,Setter方法,忽略

}

4th:代码编程渲染模版生成目录及Word文件。如下: 

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;

TmplateData tmplateData = new TmplateData();
// 设置目录占位符字段的值
tmplateData.setToc("toc");

// 创建模版配置,并绑定目录渲染策略给
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值