将来的十年是产业互联网的时代,产业互联网的特色是数字化、线上化、效率化。这意味着各行各业急需数字化转型和效率转型。而在这场转型过程当中,企业 OA 系统扮演着相当重要的角色。前端
对企业而言,OA 系统不只提升了企业的组织管理水平及办公效率,更实现了提升决策效能的目的,使企业竞争力获得提高。可是,随着 OA 系统功能模块愈来愈齐全,愈来愈臃肿,也让这一效率平台逐渐“失效”。java
OA 系统的管理最终还须要回归至业务管理的道路上来,毕竟业务才是企业的运做根本。OA 系统中常见的业务管理包括哪些呢?好比财务报表的制做,凭证的生成;采购部的供货商的管理,采购单据的输入与保管;业务部的合同管理,客户维护等等。这些大部分都是在表格的形式中完成分析与决策的,须要要求 OA 系统将数据无缺的保存与共享,并与其余系统进行数据整合。segmentfault
但目前企业 OA 系统中的表格功能,大部分都肩负着很是复杂的业务需求。不只须要具有着传统 Excel 中的大部分核心功能,包括函数计算、条件格式、图表等等;还须要支持高效的多人协同编辑以及庞大的数据处理需求。后端
数据量以及表格功能的逐渐增长,随之而来的就是计算速度的下降。这不只会影响工做效率,打断思路的连贯性,也会增长员工或者用户的出错率和对工做的厌烦程度(尤为时在处理重复任务时)。 浏览器
此外,内存占用的问题,也是 OA 系统中一项很是重要但容易被人忽略的性能指标,若是技术选型时未考虑内存占用问题,每每会出现一个 3M 的文件消耗 100 多兆内存空间的状况。若是同时进行包含大数据量的 Excel 读操做,很容易形成内存溢出问题。传统企业的技术决策层广泛都会忽视“内存的价值”,可是:缓存
因此除非企业真的有充足的预算去升级服务器,否则真的不能忽略内存的优化。这两个问题的背后,也引出了咱们今天讨论的重点 —— 如何提升 OA 系统表格模块的数据处理性能 & 表格数据处理产品的技术选型。服务器
大部分企业在项目的平常开发中遇到表格数据处理需求时,每每会在业务代码中直接引入如 Apache POI 这类的技术解决方案。负载均衡
Apache POI 做为一款很是强大的 Office 软件操做包,是 Apache 软件基金会用 Java 编写的免费开源的跨平台 Java API,提供了对 Microsoft Office 格式文件的读写功能,在项目中的应用很是普遍,做为一款开源软件,为开发者提供了极大的便利。函数
然而,即使 POI 很强大,但仍存在一些不可忽视的问题。首先是代码相对比较繁琐,而且当 Excel 的数据量很是大的时候,POI 的操做逻辑是将整个 Excel 的内容所有读出来放入到内存中,这就致使内存消耗很是严重,一个 3M 的文件甚至须要消耗 100 多兆的内存空间。若是同时进行包含大数据量的 Excel 读操做,很容易形成内存溢出问题。工具
除了耗内存之外,还有版本兼容性不够等缺点,在进行版本升级的过程当中,须要对之前的代码进行修改,或者对 jar 包进行版本隔离,这些都对项目带来了不少潜藏的风险。
为了帮助有相关需求的企业人员进行技术选型,提供一些更直观的数据对比,咱们为你们进行了一次对比测试,下图是测试的相关结果:
从测试数据来看,葡萄城提供的服务端高性能表格组件 GrapeCity Documents for Excel (简称:GcExcel) 不管从运行速度、功能,仍是内存消耗等方面,都要比 Apache POI 表现的更为优秀,如其平均处理速度能够达到 POI 的 7 倍,而内存消耗却不到七分之一。
为了进一步测试 Excel 文件的读取性能极限,咱们使用了 StopWatch 函数来监听 Excel 的打开时间,测试对象为一个包含 30 列、1,000,000 行、30,000,000 个单元格数据的电子表格文件。通过测试, Excel 打开这个文件须要等待 34 秒,而用 GcExcel 打开这样一份文件,仅需 12 秒。
这 20 秒的时间,对于用户体验以及业务流转来讲,重要性不言而喻。这个测试结果也为企业选型提供了一个思路 —— 你愿意投入多少成本,来为这 20 秒的业务优化买单?
为了这短短的 20 秒,葡萄城尝试了大量的优化实践,如减小垃圾回收、共享存储、利用高速缓存、使用基于集合的操做运算、利用 SIMD 计算数据等,基于这些实践推出的表格组件 SpreadJS 和 GcExcel 已经帮助许多企业减小了项目研发成本,实现了更高的处理性能。
以 GcExcel 为例,其在服务端实现批量导入导出电子表格数据,有效规避了前端浏览器的内存限制,配合 SpreadJS 使用,可以让系统达到真正的先后端负载均衡,帮助开发者轻松应对 OA 系统开发时常常会面临的在线文档先后端数据同步、批量导出与打印,以及报表模板高性能处理等业务场景须要。
其实,表格技术及其衍生工具的概念并不新颖,但随着企业对于系统处理性能和易用性的要求逐步加深,在近几年愈发受到开发人员和技术决策者的关注,葡萄城做为深耕表格技术领域的探索者,其推出的多款表格组件已成为表格技术领域的“必备解决方案”,帮助企业用极低的成本达到“降本增效”的目的。
在数字化转型的浪潮下,大部分企业的业务运转中表格应用场景已经十分普遍,随着业务的发展,本地文档管理或者传统开源免费的 POI,已经没法知足用户对于表格产品的性能和系统兼容度的需求,这也迫使表格产品不断的优化迭代,优胜劣汰。谁能找到最契合自身业务发展的技术选型或产品,谁便更有可能找到更多的发展契机。
扩展阅读: