如何透過前端表格控制元件實現自動化報表?

葡萄城技术团队發表於2024-07-30

背景

最近夥伴客戶的專案經理遇見一個問題,他們在給甲方做自動化報表工具,專案已經基本做好了,但拿給最終甲方,業務人員不太買賬,專案經理為此也是天天抓狂,沒有想到合適的應對方案。

現階段主要面臨的問題是專案經理和甲方溝通好了需求,就佈置了任務,讓研發去調研。但由於現在市面上報表的形式大同小異,大部分都是用 Excel 來做,難點就在於要開發一個高度類似 Excel 並且還可以應用在 web 端專案上的報表。市面上存在一些軟體級的應用,但是又只能用透視表這些做統計報表分析,和使用者期望的聚合形式多少有差異。而且整合費用成本也比較大,導致專案組的人目前都沒什麼頭緒。

解決方法

為了解決這個問題,夥伴客戶的專案經理向小編求助,想問問在前端開發過程中,有沒有用過一種能同時具備 Excel 使用習慣,也能和業務資料庫整合,做出一些業務報表的前端外掛。

在尋找解決方案的過程中,小編進行了市場調查,探索了不同的報表生成方式,以確定哪種方式最有可能滿足使用者的期望需求,這裡也做下分享:

方式一:使用 Excel 工具

Excel 可以透過擴充套件機制,對接一些業務資料。使用者可以基於這些業務資料,直接在本地 Excel 利用透視表等方式做出自己想要的報表形式,使用Excel直接做報表存擁有以下優點:

  • 熟悉的介面和操作方式,降低學習成本;
  • 靈活性高,可以根據需要自定義報表樣式;
  • 可以在本地進行資料分析和報表生成,無需依賴其他軟體或平臺。

在目前的市面上,大多數公司都是使用此方法,這也是符合大多數人最好的操作習慣,但從專案的實際落地而言,還是會存在一些難以解決的問題:

  • 目前 Excel 仍然是一個獨立的軟體,很難和企業的系統進行融合,目前大多數公司都是將資料從系統中匯出,然後再用 Excel 開啟之後再進行分析並做報表,最後再把報表上傳到系統中,同時作為一款獨立於系統之外的軟體,系統的資料在被匯出到系統之外後也非常容易洩露;
  • 目前 Excel 存在多個版本,並且各個版本之間的相容性也並沒有做到一致,就會導致用不同的版本軟體開啟之後會出現不相容的問題,同時隨著國產辦公軟體 WPS 的崛起,不相容的問題未來會更加嚴重。

總的而言,Excel 作為全球影響範圍最廣、使用效率最高的軟體,目前仍然是中小企業的第一選擇,但是隨著市面上各大控制元件產品以及國產辦公軟體的崛起,越來越多的公司和企業也慢慢開始有了新的選擇。

方式二:自研或藉助其它報表引擎工具

該方法適合於技術能力較強且公司財力雄厚的企業,針對最終客戶的需求,需要採用類似 Excel 報表的設計形式。若考慮自主開發,首要任務是研發一個適用於 Excel 的功能。對開發人員而言,這可能比僅瞭解 Excel 擴充套件 API 又要更加困難。儘管市面上存在一些開源的類 Excel 外掛,但其功能相對較為簡單,且不具備使用者所需的報表製作能力。因此,這一途徑的實現成本相當高昂。

另一種方法是藉助其他報表引擎工具,這類工具通常具備完善的資料接入能力,透過表單佈局形式,同樣可以生成使用者所需的 Excel 報表。若最終客戶僅需檢視類似 Excel 的報表形式,或者預算中包含相應的實施及維護費用,那麼這些工具具有極高的應用價值。畢竟,對於任何公司而言,能夠輕鬆創收而又耗費少量精力的事情,幾乎沒有誰會拒絕。然而,若客戶需要根據業務需求自行製作報表,則學習新系統的成本仍然無法迴避。

方式三:使用市面上高度類似 Excel 的前端表格控制元件工具

小編在進行市面上的調研時發現,除了直接用 Excel 和自研之外,其實還有一款非常成熟的前端類 Excel 表格控制元件 SpreadJS,該產品由西安葡萄城研發,整體上使用起來和Excel非常相似,同時口碑也相當不錯。

SpreadJS 可以相容 Excel 絕大部分基礎能力,包含了透視表及公式函式,甚至包含了基於資料透視表和圖表的相關統計分析。這就意味著,研發只需要負責開發資料接入介面,業務人員完全可以用以前線下使用 Excel 的方式製作自己想要的報表。

除此之外,SpreadJS 也具備了和主流報表引擎同等的報表製作能力,區別是在報表製作形式上,SpreadJS並沒有選擇市面上常用的表單配置型模式,而是選擇了類 Excel 的報表設計形式,有效減少使用者的學習成本。

上面的動圖是 SpreadJS 報表模組的操作過程,研發做好資料接入後,業務人員只需要透過拖拉拽相應的欄位到單元格位置即可。之後的單元格背景色、文字大小、行高列寬等一系列顯示設定,都可以完全複用類Excel的使用習慣。目前在市面上,這種設計形式可以算是獨一無二了。

SpreadJS 報表機制不同於其它報表的設計在於,使用者可以直接在設計完成的報表上進行資料修改,報表不再只是一種檢視態的形式。比如在做員工打分時,呈現給領導的報表,如果領導覺得某個員工的打分不合適,希望能直接對分數做調整,不再需要回到打分系統中,只要開發人員接入好資料回寫介面,即可做到在報表檢視態,高許可權使用者可直接進行資料修改或錄入,等於說,一部分填報工作可以直接透過報表能力解決(如下圖所示)。

總結

綜合來看,以上三種解決方法各有利弊。對於對資料安全性要求較低、業務需求相對簡單的公司,可以選擇方法一;對於技術實力較強的公司和企業,可以考慮方法二;而對於技術能力相對較弱,但需要進行大量資料填報、分析以及保護資料安全,並對 Excel 有強烈依賴的公司,可以考慮方法三,以便更好地滿足使用者需求。

相關文章