當前位置: 妍妍網 > 碼農

介紹一個開源視覺化報表工具

2024-02-09碼農

CellReport 是一個制作復雜統計報表的工具,以解決日常快速制作統計報表的需求為初衷。它提供了多種資料來源選擇,包括資料庫、Excel 檔、API 服務和已有報表,透過內建的集合函式,以類 Excel 界面設計報表,最終呈現結果。

功能特點

  • 1. 支持常規的清單、分組和交叉報表 :可以根據需要對數據進行清單、分組和交叉展示。

  • 2. 多源、分片 :支持使用多個資料來源,並且可以將數據分片處理。

  • 3. 多數據集的集合運算 :可以對多個數據集進行集合運算,方便加工數據。

  • 4. 單元格擴充套件、參照 :支持單元格的擴充套件和參照,方便制作復雜的統計報表。

  • 5. 內建類 JS 語言引擎 :可以使用內建的類 JS 語言引擎實作自訂指令碼功能。

  • 6. 豐富的函式定義 :內建了豐富的函式定義,方便進行計算和操作。

  • 7. 可自訂擴充套件函式 :可以根據需要自訂擴充套件函式,滿足個人化需求。

  • 8. 頁面元素豐富 :預定義了報表元件、Echart 元件、數據展現元件等豐富的頁面元素。

  • 9. 靈活的報表元素間數據參照 :報表元素間的數據參照設定靈活,方便局部報表重新整理。

  • 10. 支持元件報表參照 :可以參照其他報表軟體制作的報表(專業版提供)。

  • 工作原理

    在報表執行時,首先以並列方式獲取所有數據集的數據,並根據報表設計中預定義的公式進行數據合並和運算。最終將數據以 JSON 格式傳遞給前端展示頁面,前端根據 JSON 結果呈現報表。

    CellReport 的執行環境內建了類 JS 語言環境,所有運算都基於該語言核心。制作報表時,只需要記住少量函式以及基本的加減乘除運算。

    執行環境提供了多個可以自訂控制的存取點,例如在報表執行前進行通用檢查、控制數據是否回傳給前端等。前端展示部份使用了 Vue 框架和樣版編譯器,可以自由控制 Echart、數據展示等元件的顯示樣式。

    CellReport 的後端基於 .NET 6 執行,具有高記憶體效率,僅需約 300MB 記憶體。它采用了大量異步任務和延遲返回等技術,執行效率與手寫加工數據程式相當。

    如果系統沒有預定義的函式,可以透過實作 FunctionUnit 介面來擴充套件系統,也可以使用內建語言實作一些簡單的函式擴充套件。