如何通過前端表格控件實現自動化報表?1

背景

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

現階段主要面臨的問題是項目經理和甲方溝通好了需求,就布置了任務,讓研發去調研。但由于現在市面上報表的形式大同小異,大部分都是用 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 報表機制不同于其它報表的設計在于,用戶可以直接在設計完成的報表上進行數據修改,報表不再只是一種查看態的形式。比如在做員工打分時,呈現給領導的報表,如果領導覺得某個員工的打分不合適,希望能直接對分數做調整,不再需要回到打分系統中,只要開發人員接入好數據回寫接口,即可做到在報表查看態,高權限用戶可直接進行數據修改或錄入,等于說,一部分填報工作可以直接通過報表能力解決(如下圖所示)。

最新技術資源(建議收藏)
https://www.grapecity.com.cn/resources/

總結

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

擴展鏈接:

【干貨放送】財務報表勾稽分析要點,一文讀盡!

為什么你的財務報表不出色?推薦你了解這四個設計要點和!

純前端類 Excel 表格控件在報表勾稽分析領域的應用場景解析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75783.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RabbitMQ 優先級隊列詳解

本文是博主在記錄使用 RabbitMQ 在執行業務時遇到的問題和解決辦法,因此查閱了相關資料并做了以下記載,記錄了優先級隊列的機制和使用要點。 本文為長文,詳細介紹了相關的知識,可作為學習資料看。 文章目錄 一、優先級隊列介紹1、…

代理模式簡述

目錄 一、主要角色 二、類型劃分 三、靜態代理 示例 缺點 四、動態代理 JDK動態代理 示例 缺點 CGLib動態代理 導入依賴 示例 五、Spring AOP 代理模式是一種結構型設計模式,通過代理對象控制對目標對象的訪問,可在不改變目標對象情況下增強…

每日一題——云服務計費問題

云服務計費問題(哈希表 排序)| 附詳細 C源碼解析 一、題目描述二、輸入描述三、輸出描述四、樣例輸入輸出輸入示例:輸出示例:說明: 五、解題思路分析六、C實現源碼詳解(完整)七、復雜度分析 一…

【JVM】運行時數據區域

文章目錄 1. 程序計數器補充 2. 虛擬機棧2.1 棧幀1. 局部變量表2. 操作數棧3. 動態鏈接4. 方法返回地址補充 3. 本地方法棧4. 堆5. 方法區靜態常量池(Class常量池)運行時常量池字符串常量池(1)位置變化(2)放…

day28圖像處理OpenCV

文章目錄 一、圖像預處理4 邊緣填充4.1 邊界復制(BORDER_REPLICATE)4.2 邊界反射(BORDER_REFLECT)4.3 邊界反射101(BORDER_REFLECT_101)4.4 邊界常數(BORDER_CONSTANT)4.5 邊界包裹&…

C++ Json-Rpc框架-3項目實現(2)

一.消息分發Dispatcher實現 Dispatcher 就是“消息分發中樞”:根據消息類型 MType,把消息派發給對應的處理函數(Handler)執行。 初版: #pragma once #include "net.hpp" #include "message.hpp"n…

C++算法優化實戰:破解性能瓶頸,提升程序效率

C算法優化實戰:破解性能瓶頸,提升程序效率 在現代軟件開發中,算法優化是提升程序性能的關鍵手段之一。無論是在高頻交易系統、實時游戲引擎,還是大數據處理平臺,算法的高效性直接關系到整體系統的性能與響應速度。C作…

【PostgreSQL教程】PostgreSQL 特別篇之 語言接口連接PHP

博主介紹:?全網粉絲22W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

山東大學軟件學院創新項目實訓開發日志(12)之將對話記錄保存到數據庫中

在之前的功能開發中,已經成功將deepseekAPI接口接入到springbootvue項目中,所以下一步的操作是將對話和消息記錄保存到數據庫中 在之前的開發日志中提到數據庫建表,所以在此刻需要用到兩個表,conversation表和message表&#xff…

Spring-注解編程

注解基礎概念 1.什么是注解編程 指的是在類或者方法上加入特定的注解(XXX) 完成特定功能的開發 Component public classXXX{} 2.為什么要講注解編程 1.注解開發方便 代碼簡潔 開發速度大大提高 2.Spring開發潮流 Spring2.x引入注解 Spring3.x完善注解 Springboot普及 推廣注解…

Dify智能體平臺源碼二次開發筆記(5) - 多租戶的SAAS版實現(2)

目錄 前言 用戶的查詢 controller層 添加路由 service層 用戶的添加 controller層 添加路由 service層-添加用戶 service層-添加用戶和租戶關系 驗證結果 結果 前言 完成租戶添加功能后,下一步需要實現租戶下的用戶管理。基礎功能包括:查詢租…

基于若依的ruoyi-vue-plus的nbmade-boot在線表單的設計(一)架構方面的設計

希望大家一起能參與我的新開源項目nbmade-boot: 寧波智能制造低代碼實訓平臺 主要目標是類似設計jeecgboot那樣的online表單功能,因為online本身沒有開源這部分代碼,而我設計這個是完全開源的,所以希望大家支持支持,開源不容易。 1、數據庫方面設計考慮 是在原來gen_table和…

WebFlux應用中獲取x-www-form-urlencoded數據的六種方法

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,精通Java編…

[Python基礎速成]1-Python規范與核心語法

本系列旨在快速掌握Python,實現能夠快速閱讀和理解 Python 代碼,并在可查閱語法的情況下進行 AI 學習。 本篇先了解一下Python基礎知識。 本篇內容較菜鳥教程有所刪減、方便快速構建大綱,且加入了PEP 8規范說明等有助于理解和編寫代碼的說明。…

農民劇團的春天與改變之路

楊天義,男,1966年9月生,中共黨員,江西省吉安市吉水縣水南農民劇團團長。 楊天義從廢品收購起家,憑借自身的努力和奮斗,自籌資金100余萬元建設了水南鎮的第一座影劇院,組建了江西省吉安市吉水縣…

python asyncio 的基本使用

1、引言 asyncio 是 Python 標準庫中的一個庫,提供了對異步 I/O 、事件循環、協程和任務等異步編程模型的支持。 asyncio 文檔 2、進程、線程、協程 線程 線程是操作系統調度的基本單位,同一個進程中的多個線程共享相同的內存空間。線程之間的切換由操…

Leedcode刷題 | Day30_貪心算法04

一、學習任務 452. 用最少數量的箭引爆氣球代碼隨想錄435. 無重疊區間763. 劃分字母區間 二、具體題目 1.452用最少數量的箭引爆氣球452. 用最少數量的箭引爆氣球 - 力扣(LeetCode) 在二維空間中有許多球形的氣球。對于每個氣球,提供的輸…

Ant Design Vue 表格復雜數據合并單元格

Ant Design Vue 表格復雜數據合并單元格 官方合并效果 官方示例 表頭只支持列合并&#xff0c;使用 column 里的 colSpan 進行設置。 表格支持行/列合并&#xff0c;使用 render 里的單元格屬性 colSpan 或者 rowSpan 設值為 0 時&#xff0c;設置的表格不會渲染。 <temp…

C++ 標準庫中的 <algorithm> 頭文件算法總結

C 常用 <algorithm> 算法概覽 C 標準庫中的 <algorithm> 頭文件提供了大量有用的算法&#xff0c;主要用于操作容器&#xff08;如 vector, list, array 等&#xff09;。這些算法通常通過迭代器來操作容器元素。 1. 非修改序列操作 std::all_of, std::any_of, s…

程序化廣告行業(84/89):4A廣告代理公司與行業資質解讀

程序化廣告行業&#xff08;84/89&#xff09;&#xff1a;4A廣告代理公司與行業資質解讀 大家好&#xff01;在探索程序化廣告行業的道路上&#xff0c;每一次知識的分享都是我們共同進步的階梯。一直以來&#xff0c;我都希望能和大家攜手前行&#xff0c;深入了解這個充滿機…