在三个办公套件中,Excel可能是功能最多,也是最难掌握的一个。从每天的表格录入,到业务数据复杂的统计分析,Excel看起来就是一个外表平淡,实力深不可测的武林高手。在日常工作中熟练使用Excel往往可以事半功倍,而这里所谓的“熟练”不仅仅是熟悉大量的公式、图表绘制等操作,还有一个非常重要的特性——透视表。
透视表是将原始明细数据表中涉及到的各组相关数据进行分类汇总的产物。用户可以用不同的组合处理原始数据。例如,以下销售业绩原始数据:
如果想知道几个销售人员卖了多少辆车,销量是几何,可以用透视表来分析:
从上表可以清楚的看到几个销售人员每个季度卖了多少车,卖了多少,每个品牌卖了多少……等信息,透视表中包含哪些字段是随机选取的。例如,我们只想统计每个季度的销售量和销售额:
这里跳过卖车的品牌信息,对应的字段选择设置为:
我们也可以点击每个字段来选择要显示的子内容,比如只看1-3个季度的业绩,或者只看一个销售人员的业绩,等等。
因此,透视表是一种按需可视化处理原始数据的便捷工具,在日常工作中应用广泛。当工作场景中存在包含大量信息的原始数据表时,可以使用数据透视表快速获取有意义的数据洞察,为业务提供有价值的信息。
为什么你的前端需要数据透视表?
在过去,大多数企业员工使用数据透视表的唯一渠道是Excel。由于办公套件长期垄断企业办公市场,大部分行政和业务人员只会接触Excel这种数据分析工具。Excel本身就足够强大,其他工具很难在市场上立足。
然而,随着数字化浪潮的涌动,数字化转型已经成为几乎所有企业都不得不面对的机遇和挑战。爆发之后,家庭办公的兴起对传统办公软件环境发起了新的冲击。如今的企业IT、业务和管理人员经常需要在多个软件环境中切换,处理比过去高出一个甚至几个数量级的海量数据。他们可能需要在办公室、地铁、酒店和家中随时处理业务请求。在这样的场景下,数据分析的需求开始随时随地的出现,Excel或者类似的大型单体软件已经无法应对新时代的复杂挑战。
以上述业务数据为例,这家汽车销售公司的业务总监可能在内部绩效管理App上审核今年的数据,需要使用App中的透视表功能;人员统计奖金信息时,需要登录企业后台管理网站查看业务数据,在网页上获取绩效排名;在准备高管年度报告时,他们试图将动态透视表组件集成到报告中,以方便现场展示...这些需求都是Excel这样的单一软件难以完成的,更多时候适合采用嵌入的方式将透视表功能嵌入到相应的前端应用中。
随着这种需求的快速增长,市场上出现了一站式解决方案,方便企业和软件开发人员将传统上由Excel执行的功能集成到各种应用程序和页面中。今天的主角——Spread JS就是其中的佼佼者。SpreadJS是葡萄城开发的。它是基于HTML5的纯前端表格控件,兼容450多个Excel公式,具有“高性能、跨平台、与Excel高度兼容”的产品特性。受到华为、明远云、远光软件等知名企业的青睐,被中国软件行业协会认定为“中国优秀软件产品”。2020年发布的SpreadJS 14.0引入了强大的透视表功能,满足了企业在多场景下整合深度数据分析能力的需求,也大大减轻了前端软件开发者的负担。
在前端集成数据透视表:简要教程
使用SpreadJS,构建前端嵌入式透视表非常简单,如图所示:
上图中的PivotLayout工作簿是数据透视表的页面,DataSource是原始数据页,图中右侧的面板是SpreadJS生成的透视表面板。用户可以在这里调整必填字段来改变左侧透视表的展现信息。
在数据透视表中,有四个区域:
过滤器:控制透视表的数据范围。列:控制透视表的列分布。行:控制透视表的行分布。值:控制透视表的计算数据和计算方法。
输入以下代码创建数据透视表面板:
让panel =新GC。spread . pivot . pivot panel);
用户必须设置“面板”元素的宽度和高度。
GC。Spread.Pivot.PivotPanel构造函数参数如下:
以下是使用标准js代码嵌入数据透视表的app.js文件:
window . onload = function { var spread = new GC。Spread.Sheets.Workbook,{ sheet count:2 });initSpreadvar pivotLayoutSheet = spread . get sheet;init透视表;};函数init spread { spread . suspend paint;let sheet = spread.getSheetsheet.namesheet.setRowCountsheet . set column width;sheet . get cell . formatter;sheet . get range . formatter;sheet . set array;let table = sheet . tables . add;for { sheet . set formula } table . style;let sheet 0 = spread . get sheet;sheet 0 . name;spread.resumePaint}函数init pivot table { let my pivot table = sheet . pivot tables . add;my pivot table . suspend layout;my pivot table . options . showrow header = true;my pivot table . options . show column header = true;我的数据透视表. add;我的数据透视表. add;我的数据透视表. add;let group info = { origin field name:" date ",dateGroups: [{ by: GC。pivot . dategrouptype . quarters }]};我的数据透视表.组;我的数据透视表. add;var面板=新GC。spread . pivot . pivot panel);panel . section可见性;my pivot table . resume layout;my pivot table . autofit column;} function _ getElementById { return document . getElementById;}
在相应的html页面中添加插件代码:
可以看到,总共60行左右的代码就可以在一个网页中嵌入透视表和透视表控制面板。
SpreadJS不仅支持标准的JS代码,还支持Angular、Vue和React框架。使用Angular的时候需要单独创建一个app.component.html页面,Vue和React的app文件的代码会比较长,插件导入的代码段要放在app文件里。
另外,数据透视表面板只是一个控制数据透视表的工具,使用fromJSON时会自动释放。数据透视表可以在没有数据透视表面板的情况下工作。因此,透视表支持以下api来处理面板和透视表之间的关系。
将透视面板附加到透视表上:
//attach:void
从数据透视表中分离数据透视表面板:
// detach : void
销毁数据透视表面板:
//destroy:void
除了透视表,你的前端也可以做到这一点。
SpreadJS的威力并不仅限于数据透视表。SpreadJS是葡萄城推出的纯前端表单控件,在电子表格应用领域拥有40多年的专业控件技术和经验。到现在,它的功能已经成为一个可以媲美Excel的在线表单控件。SpreadJS在界面和功能上与Excel高度相似,可以为企业信息系统提供表单和文档的协同编辑、数据填写、类Excel报表设计等应用场景支持。SpreadJS可以在Angular、React、Vue等前端框架中直接实现高效的模板设计、在线编辑、数据绑定等功能。,并为最终用户提供高度类似Excel的体验。
SpreadJS在使用时不需要预装任何插件或第三方组件。拥有流畅的交互体验,可以在浏览器中直接导入导出Excel、CSV、JSON等文件。SpreadJS兼容数百种Excel计算公式,内置18种条件格式、32种图表、53种单元格格式和182种形状。还支持触控操作,拥有纯中文界面。
值得一提的是,SpreadJS在搭建界面时没有采用传统的DOM拼接方式,而是使用了HTML5 Canvas渲染技术,提升了性能,打破了DOM元素渲染对UI的诸多限制,实现了更加精准的UI界面渲染效果。该技术已获得国家知识产权局颁发的发明专利证书。
在最新版本的SpreadJS 15.0 Update 1中,也有跨工作簿公式函数支持、日期切片器、Vue3框架支持等更新内容。随着SpreadJS的不断更新和发展,该工具已经成为现代企业在各种业务场景下实现在线Excel功能,满足随时随地数据处理、分析和展示需求的最佳选择之一。点击以下链接,详细了解SpreadJS的强大能力,尽快提升企业的数据生产力。
前端表透视表在线示例:https://demo . gravity . com . cn/spread js/spreadjsvertical/features/pivot-table/pivot-panel/overview/pure js
葡萄前端表格控件spread js:https://www.grapecity.com.cn/developer/spreadjs
类似Excel的全栈解决方案:https://www.gravity.com.cn/developer/gravity文档/解决方案