Word文件中如何插入潤乾報表
潤乾報表製作完成後,不僅能實現展現及匯出等功能,還能夠根據使用者需求, 通過指定模版檔案中的書籤名稱確定插入位置,然後將報表、 圖片、 文字內容插入到新的 Word 檔案中。
本文主要介紹潤乾報表插入 word 文件的具體步驟。
首先介紹下功能原理:
1、 建立 word 模版,在需要插入潤乾報表的位置定義“書籤”;
2、 Api 根據 word 書籤位置,插入計算後的報表物件;
3、 輸出根據模版生成的 word 檔案。
具體實現過程及相關程式碼:
1、 建立 word 模版
2、 Api 計算報表,並通過 DocxChanger 類將報表結果插入指定書籤,輸出 word 結果
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 =new
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();
}
}
}
3、 對比驗證結果
(1)Word 模版(執行完 api 後,沒有改變):
(2)報表實際執行結果
(3)輸出的 word 結果檔案(根據上面程式碼為 out.docx)
作者:bubblegum
連結:http://c.raqsoft.com.cn/article/1534476441279
來源:乾學院
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。