本编文章继SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格)文章之后 介绍Poi-tl导出word的延伸功能:
所需依赖以及word模板所属位置 见 SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格),这里不再累赘。
直接介绍延伸功能的实现。
一、延伸功能
功能1:导出多个动态行表格(固定个数) 功能2:导出循环列表下的动态行表格(个数不固定) 功能3:导出合并单元格 功能4:导出循环列表下合并单元格 功能5:导出循环列表下合并单元格、外加一个动态行表格
二、功能实现
功能1:导出多个动态行表格(固定个数)
(1)新建一个word(orderD2.docx),编写word模板:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210105160353571.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2MzgzOTc1,size_16,color_FFFFFF,t_70)
(2)在ExportWordController类中,编写相应的导出方法,供页面请求
/**
* 销售订单信息导出word --- poi-tl(包含两个动态行表格)
* @throws IOException
*/
@RequestMapping("/exportDataWordD4")
public void exportDataWordD4(HttpServletRequest request,HttpServletResponse response) throws IOException{
try {
Map params = new HashMap();
// TODO 渲染其他类型的数据请参考官方文档
DecimalFormat df = new DecimalFormat("######0.00");
Calendar now = Calendar.getInstance();
double money = 0;//总金额
//组装表格列表数据
List typeList=new ArrayList();
for (int i = 0; i 使用POI-tl根据word模板动态生成word(包含两个动态行表格)
导出word(包含两个动态行表格)
//方式一导出word(包含两个动态行表格)
function doExportWordD4(){
window.location.href="/auth/exportWord/exportDataWordD4";
}
(4)导出结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010516201279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2MzgzOTc1,size_16,color_FFFFFF,t_70)
功能2:导出循环列表下的动态行表格(个数不固定)
如果列表的每一项不是简单的文本,而是包含很多文档内容,或者多级列表该怎么生成? 区块对的循环功能可以很好的循环列表,并且支持编号有序。
(1)新建一个word(order2.docx),编写word模板:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210104105726520.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2MzgzOTc1,size_16,color_FFFFFF,t_70)
(2)在ExportWordController类中,编写相应的导出方法,供页面请求
/**
* 销售订单信息导出word --- poi-tl(包含动态行表格、循环列表中的动态行表格)
* @throws IOException
*/
@RequestMapping("/exportDataWord4")
public void exportDataWord4(HttpServletRequest request,HttpServletResponse response) throws IOException{
try {
Map params = new HashMap();
// TODO 渲染其他类型的数据请参考官方文档
DecimalFormat df = new DecimalFormat("######0.00");
Calendar now = Calendar.getInstance();
double money = 0;//总金额
//组装表格列表数据
List typeList=new ArrayList();
for (int i = 0; i |