技術交流

OpenXML – 報表設計的另一選擇

施銘韋 施銘韋

在許多金融業的軟體開發專案中,客戶因應各式管理或策略需要,輸出指定格式的報表一直都是客戶相當重視的需求。而這些報表在格式上並非都是單純 Gird 格式,這和一般報表開發工具(如 Crystal Report)最擅長的表格呈現有相當的落差,當報表數量一多,要製作這類格式的報表便成了苦差事,往往都需要花費很大的力氣才能完成,尤其當某些文件被要求必須設計成跟原始樣版完全一樣。

使用 EXCEL 來實作這類報表是很常見的作法。不過在 Microsoft Office 2007 之後的版本都使用標準的 OpenXML 作為檔案的定義方式,採用 EXCEL(.xlsx)搭配 XML 描述檔的設計方式可以很容易的完成這類格式的報表實作。

報表實作
運作方式示意圖

當我們產生一張報表時:

  • 讀取 EXCEL Template(包含報表的 Formulas、Layouts、Formats and Styles)產生一張空報表
  • 讀取 XML 描述檔(包含 SQL Statement、Parameter 以及欄位對應關係)的 SQL Statement 定義到 RDBMS 讀取資料
  • 將取得資料透過 XML 描述檔的欄位對應關係將資料擺放置正確位置

特點

  • 報表結果是以 EXCEL 格式產生及呈現,容易瀏覽及使用者後製
  • 設計報表僅需要具備撰寫 SQL 語法的技能,無其他的程式設計要求
  • 透過參數產生報表
  • 可搭配 Windows Scheduled Tasks 做到自動作業並週期性產生日報、週報、月報或年報
  • 用 OpenXML SDK(Manipulating Excel reports with OpenXML SDK),在 Server 上無需安裝 EXCEL 軟體
  • 可支援多個不同的資料庫來源,對不同後台系統整合性高
  • 資料庫存取設定及 XML 描述檔皆佈署在 Server 上,用戶端無資安內控上的疑慮
  • 報表維護容易,調整空間彈性大,可快速開發臨時性需要的統計管理報表

資通電腦在支援國內銀行或海外分行申報主管機關法報或總行業務管理需求的報表平台已導入 OpenXML 的設計架構,它的運作方式簡單及極具高成本效益的特性,能使銀行節省大量資料收集和彙總計算的人工時間,使用者便能把時間放在資料分析、審核與開發新價值等事務上,提高人員產出價值。