首页 > 其他分享 >前后端结合解决Excel海量公式计算的性能问题

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

时间:2022-11-26 16:08:29浏览次数:45  
标签:Sheet 海量 公式 前端 Excel 计算 进行

背景

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

痛点

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

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

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

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

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

源码获取

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


标签:Sheet,海量,公式,前端,Excel,计算,进行
From: https://blog.51cto.com/powertoolsteam/5889014

相关文章

  • 解析excel后进行excel导入-vue
    遇到了一个很奇葩的需求,就是把excel的每一行都提出来转成json后一个个请求新增接口进行导入需要用到xlsx库npminstall--savexlsximportxlsxfrom'xlsx';用到的......
  • Python 处理 Excel 表格
    安装 openpyxl 模块    在Python中没有自带的处理Excel表格的模块,所以我们在Windows上使用 ​​pipinstall--useropenpyxl​​​ 命令安装第三方模块 ​​......
  • layui_excel
    前提引入excel.min.js文件1代码 varsheet1=data.listexamscore sheet1=myExcel.filterExportData(sheet1,[ 'username', 'planname......
  • EXCEL VLOOKUP匹配
    将sheet6表中的1、3、5从sheet5中标记出来第一步:在sheet5的B2处插入函数或点击函数,选择VLOOKUP#REF!表示匹配成功#N/A表示未匹配到......
  • C# 如何将Word、Excel、PPT转成PDF文件(使用Spire提供的组件)学习
    第一步:新建一个winform项目,下载Spire组件dll下载Spire.Doc、Spire.XLS、Spire.Presentation,路径:工具--NuGet包管理器--管理解决方案NuGet程序包1)Spire.Doc:word转成其它......
  • 第三节:常用解决方案剖析(Excel导出、工作单元、领域事件、JWT回收问题等)
    一.Excel导出1.效果  2.前端剖析  3.接口剖析      二.        三.         !作       者......
  • Kettle 读取Excel时增加排序字段
    选择指定tab:1.ExcelRowIndex:为该行在源excel中的行索引2.RowIndex:为读取数据时新集合中的行索引ExcelRowIndex和RowIndex 并不相等  Reference:Kettle连接......
  • Aspose.Cells实现excel预览
    ​在WEB项目中经常遇到excel文档在线预览的需求,基本的解决思路有以下几大类:excel文档转PDF、excel文档直接转html、后台读取excel数据返回给前端利用Excel效果的表格插件......
  • 如何通过Java 合并和取消合并 Excel 单元格
    在整理Excel中的数据时,我们不可避免地需要合并和取消合并单元格。同时,如果需要创建跨列或行的标题,我们可以合并Excel单元格以在电子表格中轻松完成此操作。合并单元格......
  • 龙哥量化:通达信macd黄白线变色公式(需要继续优化,各种变色方式)
    【总目录】https://www.cnblogs.com/long136/category/2247054.html龙哥量化:【文档目录3】通达信常用公式,主副图,条件选股,逻辑等详细分析https://www.cnblogs.com/long136/......