java基于poi-tl实现生成文档的功能(一)


参考官方文档:http://deepoove.com/poi-tl/

公司项目需要导出报表,在网上查找资料后选择使用poi-tl工具,记录一些使用心得。

一、使用maven导入jar包

<dependency>

<groupId>com.deepoove</groupId>

<artifactId>poi-tl</artifactId>

<version>1.11.1</version>

</dependency>

二、开始使用

导出报告一般都需要一个模板文件,按照指定的模板去生成一个报告。所以先由业务需求提出一个样式,然后再进行下面的工作。

在使用前我们需要先加载我们的模板文件实例化生成XWPFTemplate对象,参数值是你模板路径+模板文件名。我这里使用的是相对路径。

XWPFTemplate template = XWPFTemplate.compile("report_test.docx");

接下来创建一个Map集合来存放我们需要生成文档的值。
Map<String,Object> dataMap = new HashMap<String, Object>();

 

2.1 文本

 

 

 按照官方文档记载,文本一般都是使用{{参数名}}的形式标记,接下来我们就要覆盖我们的参数名完成记录

利用上面创建的Map集合来存放数据。Map的key就是我们模板文件中对应的参数名,values就是我们需要替换的值。

dataMap.put("company","天津市测试有限公司");
dataMap.put("report_num","20220217001");

2.2 图片

图片一般使用{{@参数名}}表示,和文本比较多加个了@符号

官方文档中记录了许多方式,这里我就用了其中一种,有兴趣的小伙伴可以都试试

BufferedImage bufferedImage1 = ImageIO.read(new FileInputStream("1.jpg"));
dataMap.put("baidu_track",Pictures.ofBufferedImage(bufferedImage, PictureType.JPEG).size(100,100).create());

其中PictureType是枚举值,具体取值要根据你要插入的图片类型。我这里是jpg格式,因此使用的是PictureType.JPEG。
size设置插入图片的像素大小。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM