背景

在数据密集的业务领域,尤其是金融,保险,税务等行业中,经常需要利用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

前后端结合解决Excel海量公式计算的性能问题的更多相关文章

  1. 基于Java服务的前后端分离解决跨域问题

    导语:解决跨域问题,前后端都增加相应的允许跨域的代码段即可. 一.后端增加允许跨域的代码,可以在具体controler层加,最好是在filter中添加,这样添加一次就够了,不用在每个controler ...

  2. Nginx+Springboot+Vue 前后端分离 解决跨域问题

    1:前端vue 写完 打包 npm run build prod 2: 后端api 写完打包 springboot mvn package -Dmaven.test.skip=true 3: ngin ...

  3. vue+django前后端分析解决csrf token问题

    vue-resource post数据 参考:https://www.cnblogs.com/linxizhifeng/p/8995077.html 阅读django CsrfViewMiddlewa ...

  4. excel常用公式--计算统计类

    Count/Countif/Countifs:条件计数. 注:count只能对数值进行统计 sum/sumif/sumifs:条件求和.   Average/Averageifs:  返回参数的平均值 ...

  5. 从壹开始前后端分离 40 || 完美基于AOP的接口性能分析

    旁白音:本文是不定时更新的.net core,当前主线任务的Nuxt+VueAdmin教程的 nuxt.js 之 tibug项目已上线,大家可以玩一玩:http://123.206.33.109:70 ...

  6. vue-element-admin改造接入后台,搭建有来商城youlai-mall前后端分离管理平台

    一. 前言 本篇基于有来商城youlai-mall微服务项目搭建的后台前端管理平台,技术选型Vue+Element-UI实现前后端分离,解决方案选型vue-element-admin.希望通过本篇你可 ...

  7. Excel输入公式后只显示公式却不计算如何解决?

    在使用Excel函数公式的时候,您是否碰到过输入公式,按下Enter键之后,单元格仍只显示公式,而不显示计算结果.   工具/原料   Excel 教程以Excel2013为例 方法/步骤     教 ...

  8. 从壹开始前后端分离[.netCore 不定期 ] 36 ║解决JWT自定义中间件授权过期问题

    缘起 哈喽,老张的不定期更新的日常又开始了,在咱们的前后端分离的.net core 框架中,虽然已经实现了权限验证<框架之五 || Swagger的使用 3.3 JWT权限验证[修改]>, ...

  9. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch

    回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...

  10. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...

随机推荐

  1. HDFS 分布式环境搭建

    HDFS 分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 分布式环境搭建 CSDN:HDFS 分布式环境搭建 准备四个Linux实例 每个实例对应的 host 和 ip 地址如下 nod ...

  2. 这里聊聊扫地机的 IOT 开发

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16663833.html 消费者使用扫地机通常的方式是通过 ...

  3. Gitea 1.17.2 | 带来视觉提升、完善资源校验、加强安全性等42项优化

    Gitea 1.17.2 合并了 42 个 Pull Request,现已正式发布,我们建议所有用户升级到此版本.您可以到阅读原文了解更详细的介绍. 致谢:@zeripath 为 Gitea 贡献了诸 ...

  4. 002-ImageNetClassificationDeep2017

    ImageNet classification with deep convolutional neural networks #paper 1. paper-info 1.1 Metadata Au ...

  5. 输入法词库解析(一)百度自定义方案.def

    详细代码:https://github.com/cxcn/dtool 前言 .def 是百度手机输入法-更多设置-自定义输入方案所使用的格式. 解析 码表偏移量 0x6D # 占用字节数 描述 a 1 ...

  6. AVL tree 高度上下界推导

    1. 最大高度对应 Node 数量 \(N_{h}\) 的递归公式 设有一棵 AVL tree 的高度为 \(h\), 对于该树, 构成该树的最少 node 数量为 \(N_{h}\) . 有: 最坏 ...

  7. Python数据科学手册-机器学习: 支持向量机

    support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...

  8. SpringBoot Xml转Json对象

    一.导入需要的依赖 <dependency> <groupId>maven</groupId> <artifactId>dom4j</artifa ...

  9. AlertManager 何时报警

    转载自:https://www.qikqiak.com/post/alertmanager-when-alert/ 在使用 Prometheus 进行监控的时候,通过 AlertManager 来进行 ...

  10. Kibana:在Kibana中对数据进行深入分析