FreeMarker+JFreeChart生成包含图表图片的word文档

本文介绍了如何结合Freemarker模板和JFreeChart库生成包含图表的Word文档。首先,创建一个包含文字和图片的模板文档,并将需要替换的内容用`${xxx}`标记。然后,将模板另存为XML格式并修改图片部分,用变量替换图片编码。接着,将XML文件转换为FTL模板,并放入项目资源文件夹。最后,编写`ExportWordUtils`工具类,提供生成图表和导出Word文档的功能。测试代码`Demo.java`展示了调用这些功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 一、制作模板

1、创建模板word文档

创建类似《demo.docx》的模板文档,其中包含文字内容、图片内容,特别注意:图片必须贴上内容,并且如果需要多个图片的话不能使用同一张图片,如果不贴图片或者使用同一张图片的话后边的.ftl文件无法修改。

2、另存为word xml格式文件,打开文件将需要填充内容的地方用“${xxx}”补充,图片部分先不动,如demo.xml示例。

3、把demo.xml文件后缀名改为“.ftl”,用notepad++打开demo.ftl,对其中图片部分进行修改,将图片的编码部分删掉改为对应的“${xxx}”变量。特别注意:多个图片是,该文件中图片的顺序有可能是乱的,应按照“<pkg:part”中的imageX的编号顺序来对应。

这里例子中有三个图片,替换完后如下图所示:

4、将demo.ftl文件放到项目的resources文件夹下,也可在resources文件夹下创建新的文件夹来存放模板文件,但是对应的代码中要修改模板路径。

  • 二、编写代码

ExportWordUtils.java为导出word文档的工具类,里边提供了生成饼图、柱状图、折线图,以及导出word的方法,调用方式参照TestDemo.java。

1、pom文件引入的包

<dependencies>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.13</version>
        </dependency>

        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jcommon</artifactId>
            <version>1.0.16</version>
        </dependency>
    </dependencies>

2、工具类ExportWordUtils.java

package 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值