java导出world文档 poi-tl开源框架使用demo

poi-tl:基于Apache POI的轻量级Word模板引擎 阅读详情

一、准备
添加依赖

 <dependency>
      <groupId>com.deepoove</groupId>
      <artifactId>poi-tl</artifactId>
      <version>1.7.3</version>
 </dependency>

定义模板
注意:需要把模板放在springboot项目的resources目录下,我这边放在了resources/template下
在这里插入图片描述
说明:
{{googslist}}这个是用来渲染动态表格标记点,定义这个后,才能在指定位置渲染
二、后台代码

@Controller
public class Test {

    @GetMapping("downloadWorld")
    public void downloadWorld(HttpServletResponse response,String hiddenDangerId){
        Map<String, Object> data = new HashMap<>();
        data.put("center","这个是简单描述内容");
        //创建表格数据
        List<Map<String, Object>> goodsList = new ArrayList<>();
        Map<String,Object> d1 = new HashMap<String, Object>();
        d1.put("name","手机");
        d1.put("googsNum","10");
        goodsList.add(d1);
        //渲染表格
        HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
        //注意goodslist就是表格上定义的goodslist
        Configure config = Configure.newBuilder().bind("goodslist", policy).build();
        data.put("goodslist",goodsList);
                //本地测试这样写
//        ClassPathResource classPathResource = new ClassPathResource("/template/test.docx");
//        String path = classPathResource.getURL().getPath();
//        XWPFTemplate template = XWPFTemplate.compile(path,config).render(data);
        //渲染数据  
        //这种写法支持打包成jar在linux服务器中使用能解决掉文件获取不到的问题
        XWPFTemplate template = XWPFTemplate.compile(WordUtil.class.getClassLoader().getResourceAsStream("template/test.docx"),config).render(data);
        downloadServlet(template,response);
    }

    private static void downloadServlet(XWPFTemplate template, HttpServletResponse response){
        try{
            response.setHeader("Content-disposition", "attachment;filename=" + new String("model".getBytes("gb2312"), "ISO8859-1") + ".docx");
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/octet-stream");
            response.setContentType("multipart/form-data;charset=UTF-8");
            ServletOutputStream out = response.getOutputStream();
            template.write(out);
            out.flush();
            template.close();
            out.close();
        }catch (Exception e){
            e.getMessage();
        }
    }
}

poi-tl模板引擎根据树形结构输出word文档(文档模板) 阅读详情

相关推荐

poi-tl之图表操作(基于模板)

poi-tl基于模板的图表导出

qq_31970227的博客 7973

Java使用poi-tl1.9.1生成Word文档的几个小技巧

本文将简单介绍poi-tl的相关知识,通过一个实际的案例实践,充分介绍如何利用poi-tl进行目标文档的生成,同时分享几个不同的office版本如何进行图表生成的解决方案

夜郎King的博客 2万+

【Android】使用poi读取、创建、另存Excel,支持xlsx和部分xls格式

在这里,我使用的poi是3.12版本的,它不是Apache官方poi包 下载jar包后,将其放进libs文件夹里面,选中两个jar包,鼠标右键点击add As library…添加为库 点击OK 打开build.gradle文件,添加完依赖后就可以开始 敲键盘 开发文档可以参考这里,需要注意的是我们使用的poi包不是Apache软件基金会的,部分方法及其功效会有所不同!!! 这里简要介绍我们...

宾有为的博客 8024

Spring Boot 中使用 Poi-tl 渲染数据并生成 Word 文档

产品经理急冲冲地走了过来。「现在需要将按这些数据生成一个 Word 报告文档,你来安排下」项目中有这么一个需求,需要将用户填写的数据填充到一个 Word 文档中,而这个 Word 文档是人家给定了的。换句话说,让你按照这个文档的内容格式生成新的文档。poi-tl(poi template language)是一种 Word 模板引擎,可以基于 Word 模板和数据生成新的文档,它的底层是通过 Apache POI 来实现的。

god23bin的博客之地 2929

poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel(1)

使用poi-tl 根据word模板生成word 官网 http://deepoove.com/poi-tl https://zhengkai.blog.youkuaiyun.com/article/details/81702029?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.baidujs&dist_request_id=1331302.8264.16182.

weixin_35815479的博客 6万+

poi-tl实现根据模板生成合同和html转doc,doc转docx的Demo

poi-tl实现根据模板生成合同和html转doc,doc转docx的Demo,可以直接运行,jdk1.8, poi-tl 是新的1.6版本的,

Java生成World,Java操作world,Java导出world文档

Java导出并操作World文档的简单demo,附带源代码,可以直接使用。

本人拙笔,记录一些开发、面试中的笔记,希望能帮到你。 978

【STC32G12K128开发板】——搭建开发环境

Keil C251是美国Keil公司(该公司2005年被ARM公司收购)出品的针对251微控制器系列兼容单片机C语言软件开发系统。

qq_36139768的博客 1万+

【Java实战】告别繁琐!用poi-tl轻松玩转Word模板动态渲染与数据导出

本文详细介绍了如何使用poi-tl库在Java中实现Word模板的动态渲染与数据导出,大幅提升工作效率。通过对比传统POI操作,展示了poi-tl在低代码、模板解耦、复杂表格处理等方面的核心优势,并提供了快速上手指南和实战高级技巧,帮助开发者轻松应对Word文档生成需求。

weixin_42549451的博客 88

Arcgis模型构建器01——写一个简单的模型

在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。

爱吃雪糕的小布丁的博客 924

YOLOv13改进策略【注意力机制篇】| ICASSP 2023 EMA 高效多尺度注意力,跨空间学习提高远距离建模依赖

ICASSP 2023 EMA 高效多尺度注意力在 YOLOv13 的接入实战:跨空间学习提升远距离依赖建模,含原理图解、完整代码、yaml 配置与实测参数量对比(ultralytics 8.3.63)。

qq_53329130的博客 935

Poi导出动态表格-数据渲染(支持单元格合并)-Word

使用poi-tl导出word,动态渲染表格数据-(完全个性化),支持单元格合并,表格数量不定

qq_44824400的博客 7802

合肥工业大学操作系统实验8

依据操作系统课程所介绍的地址映射与内存共享的原理,本实验的目的是深入理解物理内存的分页管理方式。 深入理解操作系统的段、页式内存管理。包括理解段表、二级页表,以及逻辑地址、线性地址、 物理地址的映射过程。编程实现段、页式内存管理上的内存共享,从而深入理解操作系统的内存管理。从而加深对教材上地址映射与内存共享的理解。

Martin-share的博客 1721

poi导出word表格、图片、多段等处理

java word poi模板导出word 包含多张图片、表格、段落

sunyuanquan的博客 7029

多物理场耦合仿真-主题032-电磁-流体耦合

电磁-流体耦合,即磁流体动力学(MHD, Magnetohydrodynamics),是研究导电流体在电磁场中运动规律的学科,涉及电磁场与流体力学的深度耦合。本主题系统阐述磁流体动力学的基本理论、控制方程和数值方法。首先介绍MHD的基本概念和物理基础,包括导电流体的性质、电磁场基本方程;然后详细推导MHD控制方程组,包括连续性方程、动量方程、能量方程和电磁场方程;接着讨论MHD流动的特征参数,如Hartmann数、磁雷诺数、相互作用参数等;最后通过六个典型工程案例展示MHD分析的实际应用,包括电磁泵、磁流体

2401_87715305的博客 427

Cesium 场景特效之【全球海洋】GL2兼容版

Cesium 场景特效之【全球海洋】GL2兼容版

喜欢钻研前端和分享技术 1280

poi-tl简介与文本/表格和图片渲染

poi-tl简介与文本/表格和图片渲染

Charge8的博客 8972

硬件学习手册【总目录】

欢迎大家来到《硬件学习手册》,专栏主要包括 《硬件经验手册》《电子元器件器件手册》《PCB手册》《CPU手册》《元器件选型手册》五个分册。在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。

fydar的博客 5862

poi-tl的详细教程(动态表格、单元格合并)

poi-tl的动态表格 合并单元格

qq_41604890的博客 8184

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 864

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java导出word 带附件功能

XWPFTemplate template = XWPFTemplate.compile(this.getClass().getClassLoader().getResourceAsStream("model/计算书.docx.docx"),configure).render(calcReportArgMap);最近做得一个导出Word功能带附件,查得官网,免费贡献给需要得人。采用得版本是poi-tl 1.10.4,低版本得目前不支持。只需要加这端代码逻辑,即可导出,支持本地文件,文件流。

坐观垂钓者 1975

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poi-tl导出word复杂表格(单元格合并,生成复杂表格)

poi-tl导出表格,单元格合并

yuanay的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

poi-tl导出word, 含表格单元格合并,表格单元格多图合并

poi-tl导出word, 含表格单元格合并,表格单元格多图合并

m0_47520320的博客 6789

poitl动态表格

花了三天时间学会了poitl的动态表格的用法。

jxwhzn的博客 2859

poi-tl的使用(通俗易懂,全面,内含动态表格实现 !)【转载】

poi-tl(poi template language)是Word模板引擎,使用模板和数据创建很棒的Word文档。中文文档地址。

一只小迷糊虫 1913

【Poi-tl Documentation】区块对标签显示隐藏改造

最后就是用我们自定义的 CustomDefaultRender 了,因为 XWPFTemplate 构造函数是 private,不能使用继承的方式实现,最后我们通过反射的方式来处理,模拟 XWPFTemplate.compile(InputStream, Configure) 方法,通过反射的方式来创建 XWPFTemplate 并给属性赋值,renderer 使用我们自定会的 CustomDefaultRender。这次改造过程中涉及到的很多方法都是从原有的方法中赋值,改动的部分很少。

添砖加瓦 2965
上一篇: java.lang.NumberFormatException: multiple points 错误分析
下一篇: java8 List排序升序和降序
北冥有只鱼
博客等级 码龄11年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值