提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:李显亮|2020-01-15 10:49:01.467|阅读 734 次
概述:本文将展示一个类似的用例,在这个用例中,可以使用Java动态和程序化地填充Word模板来生成Word文档。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
报告生成过程通常包括填充包含所需字段占位符的预定义文档模板。报告引擎将模板文档作为输入,动态地用数据填充占位符并生成结果报告。在Aspose.Words for Java 2020首更中,增加了对LINQ Reporting Engine的动态书签插入功能的支持。
LINQ Reporting Engine支持各种用于Word模板的文本,图像,列表,表格,超链接和书签的标签。引擎将使用来自Java对象以及XML,JSON或CSV数据源的数据填充包含这些标签的模板文档。这样就能够轻松的实现报告生成的功能。
本文将展示一个类似的用例,在这个用例中,可以使用Java动态和程序化地填充Word模板来生成Word文档。如果想要测试这项新功能,可点击此处下载最新版试用。
(本文篇幅略长,建议收藏阅读)
本文将介绍如何使用以下方法从模板生成Word文档:
首先通过使用Java对象中的值填充模板来创建Word文档。为了定义文档模板,创建一个新的Word文档,插入以下标签并将其另存为DOCX文档。
<<[s.getName()]>> says: "<<[s.getMessage()]>>."
在上面的模板中,“ s ”将被视为Java类的一个对象,该对象将用于填充标签。因此,让我们创建一个具有两个数据成员的名为Sender的类。
public class Sender {
public Sender(String name, String message) {
_name = name;
_message = message;
}
public String getName() {
return _name;
}
public String getMessage() {
return _message;
}
private String _name;
private String _message;
}
现在,是时候将Word模板传递给LINQ Reporting Engine并根据Sender对象的值生成Word文档了。以下是生成Word文档的步骤:
下面的代码示例演示如何使用Java对象的值从Word模板生成Word文档。
// Create Document object and initialize with DOCX template.
Document doc = new Document("template.docx");
// Create Sender object.
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
// Create ReportingEngine object.
ReportingEngine engine = new ReportingEngine();
// Build report.
engine.buildReport(doc, sender, "s");
// Save as Word document.
doc.save("word.docx");
输出结果:

接下来,看看如何在一个有点复杂的场景中使用XML数据源填充Word模板。以下是我们将用来填充Word模板的XML数据源。
<Persons>
<Person>
<Name>John Doe</Name>
<Age>30</Age>
<Birth>1989-04-01 4:00:00 pm</Birth>
</Person>
<Person>
<Name>Jane Doe</Name>
<Age>27</Age>
<Birth>1992-01-31 07:00:00 am</Birth>
</Person>
<Person>
<Name>John Smith</Name>
<Age>51</Age>
<Birth>1968-03-08 1:00:00 pm</Birth>
</Person>
</Persons>
在这种情况下,我们将在模板文档中将以下标记用于XML数据源中的多个记录。
<<foreach [in persons]>>
<
<> Average age: <<[persons.average(p => p.Age)]>>
在这种情况下,用于生成Word文档的Java代码是相同的,除了将Java对象作为数据源传递外,我们将在ReportingEngine.buildReport()方法中传递XmlDataSource对象。下面的代码示例演示如何通过使用Java中的XML数据源填充文档模板来创建Word文档。
// Create Document object and initialize with DOCX template.
Document doc = new Document("template.docx");
// Load XML
XmlDataSource dataSource = new XmlDataSource("./datasource.xml");
// Create ReportingEngine object.
ReportingEngine engine = new ReportingEngine();
// Build report.
engine.buildReport(doc, dataSource, "persons");
// Save as Word document.
doc.save("word.docx");
输出结果:
现在让我们看一下如何使用JSON数据源从DOCX模板生成Word文档。以下是在此示例中将使用的JSON数据。
在此示例中,我们将生成Word文档,其中包含按其经理分组的客户列表。按照这种情况,DOCX模板将如下所示:
<<foreach [in managers]>>Manager: <<[Name]>> Contracts: <<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>) <</foreach>> <</foreach>>
为了加载JSON数据源,Aspose.Words提供了JsonDataSource类。以下代码示例演示如何使用Java中的JSON数据源从模板创建Word文档。
// Create Document object and initialize with DOCX template.
Document doc = new Document("template.docx");
// Load JSON
JsonDataSource dataSource = new JsonDataSource("datasource.json");
// Create ReportingEngine object.
ReportingEngine engine = new ReportingEngine();
// Build report.
engine.buildReport(doc, dataSource, "managers");
// Save as Word document.
doc.save("word.docx");
输出结果:
最后但并非最不重要的一点,检查如何通过使用以下CSV数据源填充Word模板来生成Word文档。
为了处理CSV数据源,Aspose.Words提供了CsvDataSource类。下面的代码示例演示如何使用Java中的CSV数据源生成Word文档。
// Create Document object and initialize with DOCX template.
Document doc = new Document("template.docx");
// Load CSV
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
// Create ReportingEngine object.
ReportingEngine engine = new ReportingEngine();
// Build report.
engine.buildReport(doc, dataSource, "persons");
// Save as Word document.
doc.save("word.docx");
输出结果:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn




本文主要介绍如何在MVVM应用程序中使用虚拟源,欢迎下载最新版组件体验!
Aspose.Slides for Java使用户能够轻松地操作幻灯片、添加注释和转换文件。其易用性和集成能力提高了工作效率,使开发人员能够专注于更关键的任务。
在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
本文将为大家介绍如何使用DevExpress WinForms数据网格控件实现摘要文本的格式化,欢迎下载最新版组件体验!
相关产品
可用于基于Java SE或EE的桌面,Web或任何种类应用程序的Native Java API。
最新文章 MORE
永利最大(官方)网站相关的文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站