反饋已提交

網絡繁忙

Excel直接轉成範本cpt

1. 概述

1.1 應用場景

存在很多 Excel 檔案,要將它們轉成 cpt 範本,不想透過設計器手動一張張匯入,希望用程式在後台批量轉換。


Snipaste_2025-06-23_11-00-08.png

1.2 實現原理

通程式式讀取 Excel 檔案轉為範本 TemplateWorkBook,然後把範本匯出為 cpt 檔案。

1)讀取 Excel 檔案轉為範本TemplateWorkBook

File excelFile = new File("D:\\aa.xlsx"); // 獲取EXCEL檔案
FileInputStream a = new FileInputStream(excelFile);

2)匯出成 cpt 檔案

2003 版 Excel:

TemplateWorkBook tpl = new ExcelReportImporter().generateWorkBookByStream(a);
OutputStream outputStream = new FileOutputStream(new File("D:\\abc.cpt")); // 轉換成cpt範本
((WorkBook) tpl).export(outputStream);

2007 版 Excel:

TemplateWorkBook tpl = new Excel2007ReportImporter().generateWorkBookByStream(a);
OutputStream outputStream = new FileOutputStream(new File("D:\\abc.cpt")); // 轉換成cpt範本
((WorkBook) tpl).export(outputStream);

2. 範例

下面實現讀取一個Excel 檔案後將其轉換為 cpt 範本。準備一個Excel 檔案 aa.xlsx。如下圖所示:

Snipaste_2025-06-23_11-00-29.png

點選可下載:aa.xlsx

2.1 準備編譯環境

編譯程式前,需先建立一個 Java 工程環境,並且需要一個 Java 編輯器,如 Eclipse 或 idea 。

在編輯器工程中引入 FineReport 工程 JAR 包。包括安裝的報表工程

  • %FR_HOME%\webapps\webroot\WEB-INF\lib目錄下 fine 開頭的 12 個 JAR 包。

  • %FR_HOME%\webapps\webroot\WEB-INF\lib目錄下的 sqlite-jdbc.jar

  • %Tomcat_HOME%\libTomcat目錄下的 servlet-api.jar

  • %JAVA_HOME%\jdk\lib JDK 目錄下的 tools.jar

  • slf4j-simple-1.7.25.jar ,點選可下載:slf4j-simple-1.7.25.rar

詳細引入程式可參考:編譯Java程式 

2.2 編寫 Java 程式

在編輯器中編寫 Java 程式 ExcelToCpt.java,即引入必要類後,讀取 Excel 檔案後轉為 cpt 範本。完整程式碼可參見:

注1:使用者使用時,注意將範例程式碼中的工程路徑、Excel 存放路徑、範本名稱和匯出路徑取代為使用者自己環境下的。

注2:這裏以 xlsx 程式碼為例,xls 程式碼按照 1.2節進行修改,並修改 import 包即可。

https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/io/ExcelToCpt.java

2.3 編譯 Java 檔案

Java 程式編寫完成後,在編譯器中編譯 ExcelToCpt.java ,編譯透過後,就會在程式碼中匯出路徑的資料夾生成就會在對應路徑下匯出 abc.cpt 範本檔案。用設計器開啟範本後就可以看到,Excel 裏面的資料已經儲存至範本檔案裏面了。如下圖所示:

Snipaste_2025-06-23_11-01-06.png

附件列表


主題: 二次開發
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙