java生成word-xdocreport

news/2025/11/24 15:24:08/文章来源:https://www.cnblogs.com/javahepeng/p/19264345

pom  maven 引入

 

<!--  doc start -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.core</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.document</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.template</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.document.docx</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.template.freemarker</artifactId>
<version>2.0.6</version>
</dependency>

<!-- doc end -->


java 代码
--------------
 //实现类
public static void createXdocreportRe(HttpServletResponse response) throws IOException {
InputStream inputStream = null;
FileOutputStream outputStream = new FileOutputStream("warning_task.docx");
try {
//读取取resource目录下的模板 
inputStream = WordUtil.class.getClassLoader().getResourceAsStream("summary.docx");
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(inputStream, TemplateEngineKind.Freemarker);
//2.设置填充字段、填充类以及是否为list。
FieldsMetadata fieldsMetadata = report.createFieldsMetadata();
IContext context = report.createContext();

// 创建内容-text为模版中对应都变量名称
String content = "&#x3c;p&#x3e;我在这里放了一段富文本&#x3c;/p&#x3e;" +
"&#x3c;p&#x3e;我准备测试富文本的处理&#x3c;/p&#x3e;";
content = HtmlUtils.htmlUnescape(content);
context.put("name", "年终总结大会");
context.put("time", "2021年3月26日");
context.put("place", "线上");
context.put("sponsor", "张三");
context.put("content", content);
// InputStream p1 = new FileInputStream(new File("C:\\Users\\DELL\\img\\1.jpg"));
// //context.put("img", p1);
// InputStream p2 = new FileInputStream(new File("C:\\Users\\DELL\\img\\2.jpeg"));
// //new ByteArrayImageProvider(p1)
User u1=new User("张三", "组织部", "广州天河");
User u2=new User("李四", "宣传部", "北京海淀");
List<User> users = new ArrayList<>();
users.add(u1);
users.add(u2);
context.put("userList", users);
fieldsMetadata.load("userList",User.class,true);
// 生成文件
report.setFieldsMetadata(fieldsMetadata);
report.process(context, outputStream);

inputStream.close();
outputStream.close();
} catch (Exception e) {
log.info("生成纪要文件发生异常:<{}>", e.getMessage());
}
}


--------------
doc 模版


需要注意事项

在doc文档中,使用 Ctrl+F9 生成 域 然后 编辑 域

image

 

如果需要遍历 list

则需要 定义list域

 

image

 

别忘了 结束标签

image

 




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SynchronizedList线程安全列表

using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks;public class SynchronizedList<T> {private readonly List<T> _list = new List<T>();p…

CLaunch设置自动开机启动的方法

CLaunch是一款非常好用的支持快速启动的软件。CLaunch设置自动开机启动的方法 方法1:(针对绿色运行CLaunch,也就是不点击setup安装的时候) 按【Windows +R】打开运行窗口,在输入框输入【shell:Common Startup】回…

2025 年 11 月灌装机厂家权威推荐榜:酱油灌装机/高精度灌装机,洗瓶机/多种异型瓶洗瓶机/酱油洗瓶机,封盖机/酱油封盖机,高效稳定与智能操控的行业优选方案

2025 年 11 月灌装机厂家权威推荐榜:酱油灌装机/高精度灌装机,洗瓶机/多种异型瓶洗瓶机/酱油洗瓶机,封盖机/酱油封盖机,高效稳定与智能操控的行业优选方案 随着食品饮料行业的快速发展,酱油、酒类等液态调味品及饮…

电池安全与召回危机

电池安全与召回危机:质量管理软件如何构筑“数字防火墙” 每一次自燃的火焰,不仅灼烧着消费者的信任,也在焚烧着车企的品牌与未来。在动力电池这个万亿赛道中,质量不再是成本,而是生存的底线。 引言 近半年来,国…

紧抓3个关键动作,驱动企业AI HR转型落地高效、优质

故事的开端源于一组人工智能软件服务企业Cognition AI的惊人数字:该公司仅以15名程序员作为核心生产力,在公司成立后的第21个月,企业估值达到102亿美元。 而之所以能以极小的组织规模创造出令人难以置信的效率和价值…

2025年钢带增强聚乙烯螺旋波纹管实力厂家权威推荐榜单:钢带波纹管/hdpe钢带波纹管/钢带双壁波纹管源头厂家精选

在市政工程与基础设施建设持续发展的2025年,钢带增强聚乙烯螺旋波纹管凭借其高环刚度、耐腐蚀和轻质易安装的优势,已成为排水管道的优选材料。 本文将基于企业的生产能力、技术实力、产品质量与市场应用等多维度评估…

求评

qaq单纯想收集别人对我的最后印象qwq

10道面试常考的C++面试题 - Sad

10道面试常考的C++面试题$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");1. 多态是怎么实现的?虚函数表了解吗?运行时多态通过虚函数表(vtable)实现 每个…

Oracle 11g 安装程序闪退无法运行问题解决

今日为一台新服务器安装Oracle 11G时安装程序一闪而过,无法运行,查看安装报错日志 “ C:\Users\Administrator\AppData\Local\Temp\1\OraInstall2025-11-24_02-49-27PM”如下: Using paramFile: E:\database11.2.0.…

2025年上海一对一辅导机构推荐:徐汇区、虹口区家教辅导机构深度测评榜单

在徐汇区的徐家汇、衡山路商圈,虹口区的北外滩、四川北路商圈,无论是云锦东方、嘉御庭等高档小区的家长,还是瑞虹新城、外滩豪景苑的家庭,都在为孩子寻找靠谱的小学、初中、高中一对一课外补习机构。数据显示,上海…

2025年上海一对一辅导机构推荐:杨浦区、闵行区家教辅导机构深度测评榜单

杨浦区五角场、江湾城商圈,闵行区莘庄、古美板块的家长们,在为孩子挑选小学、初中、高中课外补习机构时,常陷入“机构太多挑花眼”“价格虚高没效果”“通勤耗时费力”的困境。据上海教育行业白皮书显示,2024年杨浦…

深入解析:从BIOS到UEFI:电脑启动进化史

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深耕四川 服务全国钢栈桥厂家推荐!四川中和志城建筑工程以施工 / 临时 / 装配式等全品类钢栈桥技术,筑牢工程生命线

在大型基建、水利水电、港口码头等工程项目中,钢栈桥与钢平台是保障施工通行、物资运输的 “临时动脉”,更是决定项目效率与安全的核心基础设施。四川中和志城建筑工程有限公司,深耕四川、辐射全国,专注于施工钢栈…

周总结汇览

2025 11 月 week 4

质量管理系统(QMS),如何选供应商?

在数字化转型的浪潮中,越来越多的企业意识到质量管理系统的价值。然而,面对市场上琳琅满目的QMS供应商,如何做出正确的选择,成为困扰许多企业的难题。本文将通过真实案例,为您揭示选型的关键要点。 一、选型失败的…

2025 年 11 月二氧化硫检测仪厂家推荐排行榜,便携式二氧化硫检测仪,固定式二氧化硫检测仪,在线二氧化硫检测仪,高精度二氧化硫检测仪公司精选

2025 年 11 月二氧化硫检测仪厂家推荐排行榜 二氧化硫作为一种常见的有毒有害气体,在工业生产、环境监测等领域具有重要检测需求。随着环保政策的趋严和安全生产意识的提升,二氧化硫检测仪市场呈现出快速发展的态势。…

2025年整流桥GBL生产厂家权威推荐榜单:整流桥GBU/整流桥GBP/整流桥KBJ源头厂家精选

在电源管理与能源效率日益受到重视的工业领域,整流桥作为基础却关键的电子元件,其性能与可靠性直接影响整个电路的运行效率与稳定性。 本文将基于企业的技术实力、生产规模、产品质量及市场应用等多个维度,为您推荐…

Java 中的结构化并发模式

并发编程长期以来一直是 Java 的阿喀琉斯之踵。尽管 ExecutorService 和 Future 为我们提供了良好的服务,但它们允许不受限制的模式,其中子任务可能比其父任务存活更久、线程可能泄漏,而取消操作则变成了一场噩梦。…

ddddocr: 得到滑块的目标位置

一,代码: import base64 from ddddocr import DdddOcrimport numpy as np from PIL import Image import io from PIL import Image, ImageFilter from io import BytesIOocr = DdddOcr(det=False, ocr=False)with o…

小满的五年心得体会(程序人生) - 教程

小满的五年心得体会(程序人生) - 教程2025-11-24 15:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…