本文示範如何透過 Genero Report Writer,在報表設計檔(.4rp)中使用 Table 物件來產生 Excel 試算表。本篇延續先前介紹的多種 Excel 產生方式。
實作策略
整體做法如下:
- 使用
fgl_report_loadCurrentSettings()參照報表設計檔 - 輸出裝置設為
"XLSX"而非"XLS"(XLS 格式最多只支援 65,536 列) - 設定 XLSX 裝置參數,並啟用合併儲存格功能
- 透過
fgl_report_setXLSXMergeCells(FALSE)關閉空白儲存格的自動合併
建立 .4rp 報表設計檔
建立 .4rp 檔案的步驟如下:
- 在 Genero Studio 中建立一個空白報表
- 從工具箱中插入 Table 物件
- 選取由 4GL 程式產生的報表結構定義檔(.rdd)
- 將表格列的重複條件設為「On Every Row」(每列重複)
資料填入方式
填入資料時,開發人員應注意:
- 將資料元素拖曳兩次至報表中——一次作為欄位標題列,一次作為資料列
- 將標題列類型設為
"first",使欄位標題只顯示一次 - 調整各欄的相對寬度值
- 設定適當的紙張大小(A3、A2 或自訂),以容納所有欄位
程式碼範例
本文提供完整的 4GL 範例程式(askreuben174_table.4gl),包含以下內容:
- 含多個數值欄位的記錄型別定義
- 填入範例資料至陣列
- 初始化並設定報表
- 使用
OUTPUT陳述式將資料導入報表引擎
Table 方法 vs Apache POI 方法
Table 方法的優點:
- 可透過 Report 物件屬性控制格式
- 支援粗體標題與自訂欄位名稱
- 可設定小數位數
Apache POI 方法的優點(參見第 62 篇):
- 可在儲存格層級進行更細緻的控制
- 支援多個工作表
- 支援公式與樞紐分析表
相關資源
- 第 172 篇:Excel 產生方式總覽
- 第 62 篇:Apache POI 方式
原文:https://4js.com/ask-reuben/ig-174/
· 有任何 Genero 技術問題或翻譯疑問,歡迎來信
support@t100.app