本文示範如何透過 Genero Report Writer,在報表設計檔(.4rp)中使用 Table 物件來產生 Excel 試算表。本篇延續先前介紹的多種 Excel 產生方式。

實作策略

整體做法如下:

  • 使用 fgl_report_loadCurrentSettings() 參照報表設計檔
  • 輸出裝置設為 "XLSX" 而非 "XLS"(XLS 格式最多只支援 65,536 列)
  • 設定 XLSX 裝置參數,並啟用合併儲存格功能
  • 透過 fgl_report_setXLSXMergeCells(FALSE) 關閉空白儲存格的自動合併

建立 .4rp 報表設計檔

建立 .4rp 檔案的步驟如下:

  1. 在 Genero Studio 中建立一個空白報表
  2. 從工具箱中插入 Table 物件
  3. 選取由 4GL 程式產生的報表結構定義檔(.rdd)
  4. 將表格列的重複條件設為「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