写点什么

前后端结合解决 Excel 海量公式计算的性能问题

  • 2022-11-24
    陕西
  • 本文字数:1049 字

    阅读完需:约 3 分钟

前后端结合解决Excel海量公式计算的性能问题

背景

在数据密集的业务领域,尤其是金融,保险,税务等行业中,经常需要利用 Excel 模型,来对业务进行分析和处理。例如:1.金融投资:根据模型进行估值计算,并对投资风险进行评估,通过测算出投资的内部收益率(IRR),净现值(NPV)来做投资收益分析,反应项目的获利能力。2.保险精算:运用数学,统计学,保险学的理论和方法,对保险经营中的计算问题作定量分析,以保证保险经营的稳定性和安全性。3.税务审计:在定制的审计底稿上填报基础数据,通过 Excel 的公式计算汇总,整理成审计人员需要的信息,生成审计报告,常见于税费汇算清缴,税务稽查工作等。在上述业务场景下,数据处理过程中都需要依赖很多数学计算,部分场景还需要依赖专业的数学模型。如果手工运算,不仅工程量大而且极易出错。另外,以上业务场景中的数据表格的格式也极为灵活,经常需要增加和调整。基于上述特点,以上行业的从业者往往会依赖 Excel,利用其函数计算、汇总分析、透视表等功能,完成上述业务中的复杂数学计算。

痛点

线下操作 Excel 软件,无法进行统一管理,特别是遇到模型升级,版本更新的情况。计算结果无法与其他系统,数据库,分析工具等进行交互,形成数据孤岛。如果用软件系统来管控,在前端页面中操作 Excel,可以解决版本控制,以及打通数据孤岛的相关问题,但会引入新的问题:限于浏览器运行环境的资源限制,模型中蕴含大量的复杂公式计算容易造成交互端的性能瓶颈。解决方案:基于前端运行环境性能瓶颈的存在,不能将大量公式计算放在前端进行。我们接下来采取前后端结合的全栈方案,服务端利用 GcExcel 高效的性能进行公式计算,前端采用 SpreadJS,利用其与 GcExcel 的兼容性和前端类 Excel 的操作和展示效果,将后端计算后的结果进行展示。1.读取模型之前,先用 GcExcel 在后端打开。在后端进行完整的计算。2.前端根据所展示的 Sheet 工作表,从后端读取对应的工作表并序列化进行传输。



3.前端 SpreadJS 禁用公式计算,设置计算按钮改为触发式计算。4.前端通过脏数据获取修改记录。5.当主动点击计算或者切换工作表 Sheet 页签时触发请求,将修改记录发送后端,后端将修改内容修改并整体计算。再将结果根据前端所展示的 Sheet 做序列化处理并传输至前端。6.前端进行反序列化处理展示。



两者结合,既利用了服务端的高性能避免了前端的性能瓶颈,又利用了前端的 Excel 操作进行分 Sheet 页的展示,以及前端的脏数获取修改操作并与后端交互。

源码获取


Demo 地下载址:https://gcdn.grapecity.com.cn/forum.php?mod=attachment&aid=MjQ1NjU1fDllYzAwYjVhfDE2NjkxNjY2MTZ8NjI2NzZ8OTk3MTg%3D

发布于: 刚刚阅读数: 5
用户头像

赋能开发者 2020-05-09 加入

西安葡萄城信息技术有限公司是全球领先的软件开发技术和 低代码 平台提供商,以“ 赋能开发者”为使命,致力于通过各类软件开发工具和服务,创新开发模式,提升开发效率,推动软件产业发展,为“数字中国”建设提速

评论

发布
暂无评论
前后端结合解决Excel海量公式计算的性能问题_前端_葡萄城技术团队_InfoQ写作社区