html5統(tǒng)計報表(數(shù)據(jù)統(tǒng)計html)
歡迎來到 Dotnet 工具箱!在這里,你可以發(fā)現(xiàn)各種令人驚喜的開源項(xiàng)目!
CellReport
CellReport 是一個以 復(fù)雜統(tǒng)計報表 為核心目標(biāo)的制作、運(yùn)行工具。你可以使用數(shù)據(jù)庫、excel文件、api服務(wù)、已有報表等為數(shù)據(jù)源,通過內(nèi)置的集合函數(shù)組織數(shù)據(jù),以類excel界面設(shè)計最終呈現(xiàn)結(jié)果。
CellReport 誕生的初衷是為了解決日??焖僦谱鹘y(tǒng)計報表的需要。在總結(jié)了市面上各種報表軟件的前提下,結(jié)合集合運(yùn)算的思想,使得報表制作人員拋棄使用存儲過程加工數(shù)據(jù)的方式,專注于每一類指標(biāo)的加工,然后在報表設(shè)計界面,通過集合函數(shù)組織數(shù)據(jù),極大得方便了報表的制作和維護(hù)。
主要特點(diǎn)
? 支持所有常規(guī)的清單、分組、交叉。
? 多源、分片
? 多數(shù)據(jù)集的集合運(yùn)算
? 單元格擴(kuò)展、引用
? 內(nèi)置類js語言引擎 可以使你自己的程序具有自定義腳本功能
? 豐富的函數(shù)定義
? 可自定義擴(kuò)展函數(shù)
? 頁面元素豐富。預(yù)定義有報表組件、echart組件、數(shù)據(jù)展現(xiàn)組件等
? 靈活的報表元素間的數(shù)據(jù)引用,局部報表刷新設(shè)置方便
? 組件報表引用、以及對其他報表軟件制作的報表引用(專業(yè)版提供)
截圖預(yù)覽
展開全文
實(shí)現(xiàn)原理
前端設(shè)計器采用基于vue、luckysheet、echarts等前端技術(shù)實(shí)現(xiàn)的網(wǎng)頁方式 后端報表引擎核心基于netcore6 實(shí)現(xiàn)。
報表運(yùn)行時,會首先以并行方式將所有數(shù)據(jù)集的數(shù)據(jù)取到運(yùn)行環(huán)境,然后根據(jù)報表設(shè)計中預(yù)定義好的公式做數(shù)據(jù)的合并、運(yùn)算,最終數(shù)據(jù)以json方式傳給最終展現(xiàn)頁面,前端頁面根據(jù)json結(jié)果呈現(xiàn)最終展示。
報表運(yùn)行環(huán)境內(nèi)置了類js語言環(huán)境,所有運(yùn)算都是以該語言為核心。通常制作報表,我們只需要記住10個左右的函數(shù),以及+-*/ ,就足夠我們制作復(fù)雜的統(tǒng)計報表了。
運(yùn)行環(huán)境提供了很多可以攔截接入自定義控制的地方,如:報表運(yùn)行前的通用檢查、控制數(shù)據(jù)集的數(shù)據(jù)是否回傳前端等。前端展現(xiàn)可以動態(tài)插入自定義css、js 。
前端是以vue 為基礎(chǔ),通過template-compiler模板編譯器,可自由控制echart、數(shù)據(jù)展現(xiàn)等組件的顯示樣式。
后端運(yùn)行的基礎(chǔ)環(huán)境是net6。內(nèi)存效率利用極高,僅需300M左右內(nèi)存。內(nèi)部大量異步任務(wù)和延遲返回等技術(shù),執(zhí)行效率基本和原生手寫加工數(shù)據(jù)程序的運(yùn)行效率相當(dāng)。
我們可以通過實(shí)現(xiàn)FunctionUnit接口實(shí)現(xiàn)系統(tǒng)沒有預(yù)定義的函數(shù),也可以用內(nèi)置語言實(shí)現(xiàn)一些簡單的函數(shù)擴(kuò)展。
往期推薦:
JIEJIE.NET - 強(qiáng)大的 .NET 代碼混淆工具
Dots - 更友好的 .NET SDK 管理器
DotNetCorePlugins- 動態(tài)加載和卸載 .NET 程序插件
分布式唯一 ID 生成器 - IDGen
開源力作!使用 Blazor 和 C# 管理 K8s
項(xiàng)目地址
https://github.com/NoneDay/CellReport
分享
點(diǎn)收藏
點(diǎn)點(diǎn)贊
點(diǎn)在看
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。