參考官方文檔: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設置插入圖片的像素大小。