潤乾報表製做完成後,不只能實現展示及導出等功能,還可以根據用戶需求, 經過指定模版文件中的書籤名稱肯定插入位置,而後將報表、 圖片、 文本內容插入到新的 Word 文件中。java
本文主要介紹潤乾報表插入 word 文檔的具體步驟。api
首先介紹下功能原理:xml
一、 創建 word 模版,在須要插入潤乾報表的位置定義「書籤」;對象
二、 Api 根據 word 書籤位置,插入計算後的報表對象;blog
三、 輸出根據模版生成的 word 文件。圖片
具體實現過程及相關代碼:文檔
一、 創建 word 模版get
二、 Api 計算報表,並經過 DocxChanger 類將報表結果插入指定書籤,輸出 word 結果io
importjava.io.File;模板
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importcom.raqsoft.dm.Sequence;
importcom.raqsoft.report.model.ReportDefine;
importcom.raqsoft.report.usermodel.Context;
importcom.raqsoft.report.usermodel.Engine;
importcom.raqsoft.report.usermodel.IReport;
importcom.raqsoft.report.util.ReportUtils;
importcom.raqsoft.report.view.oxml.word.DocxChanger;
public****classInsertWord {
publicstaticvoidmain(String[] args) {
try{
// 設置報表受權文件
File flic =newFile(「D:/test.lic」);
FileInputStream lis =newFileInputStream(flic);
Sequence.readLicense( Sequence.P_RPT, lis);
File f =newFile(「D:/test.docx」); // 模板文件,注意僅僅是模版,不會被修改
File of =newFile(「D:/out.docx」); // 輸出文件:最終根據模版生成的結果 word 文件。
if(of.exists()) {
of.delete();
}
FileOutputStream fos =newFileOutputStream(of);
DocxChanger dc =newDocxChanger(f, fos); // 實例化 DocxChanger
File f3 =newFile(「D:/a.rpx」);
FileInputStream fis =newFileInputStream(f3);
IReport report = ReportUtils.read(fis);
fis.close();
// 構建報表運行上下文環境及引擎,並計算報表
Context context =newContext();
Engine engine =newEngine((ReportDefine) report, context);
report = engine.calc();
// 將報表結果指定插入 report1 書籤處,注意名字和 word 模版內書籤名一致
dc.insertReport(「report1」, report);
// 執行全部修改動做,而後關閉輸出文件流
dc.execute();
fos.close();
}catch(Throwable x) {
x.printStackTrace();
}
}
}
三、 對比驗證結果
(1)Word 模版(執行完 api 後,沒有改變):
(2)報表實際運行結果
(3)輸出的 word 結果文件(根據上面代碼爲 out.docx)
更多特殊報表相關問題請查看:報表樣式彙總相關問題分類導航