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

前后,结合,解决,excel,海量,公式,计算,性能,问题 · 浏览次数 : 2200

小编点评

**数据处理方案** **前端** - 使用 **SpreadJS** 库进行数据展示。 - 禁用前端公式计算。 - 通过脏数据获取修改记录。 - 当主动点击计算或切换工作表Sheet页签时触发请求,将修改记录发送后端。 - 后端将修改内容修改并整体计算并将其结果序列化处理并传输至前端。 **后端** - 使用 **GcExcel** 进行公式计算。 - 读取模型数据并进行计算。 - 将结果序列化处理并传输至前端。 **主要技术** - GcExcel - SpreadJS -前端数据绑定技术 **痛点** - 手动运算的工程量大,容易出错。 - 数据表格格式灵活,需要动态处理。 **解决方案** - 前端和后端结合,利用 GcExcel 和 SpreadJS 进行高效数据处理。 - 使用脏数据获取修改记录,进行数据更新。 - 通过请求将修改记录发送后端,后端进行计算并更新数据。

正文

背景

在数据密集的业务领域,尤其是金融,保险,税务等行业中,经常需要利用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海量公式计算的性能问题相似的内容:

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

背景 在数据密集的业务领域,尤其是金融,保险,税务等行业中,经常需要利用Excel模型,来对业务进行分析和处理。例如: 1.金融投资: 根据模型进行估值计算,并对投资风险进行评估,通过测算出投资的内部收益率(IRR),净现值(NPV)来做投资收益分析,反应项目的获利能力。 2.保险精算: 运用数学,

跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)

基于 Vue、Element UI 和 Spring Boot + MyBatis 的动态表单系统前端实现解析 在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于 Vue、Element UI 和 S

基于Admin.NET框架的前端的一些改进和代码生成处理(1)

Admin.NET 是一套基于Furion/.NET 6实现的通用管理平台,模块插件式开发,框架包含了常规的权限管理、字典等管理模块,以及一些Vue3的Demo案例,框架前后端分离。后端基于基于Furion/.NET 6实现,底层集成SqlSugar;前端则是采用Vue-Next-Admin的前端框架,整体是一套非常不错的框架。本人比较喜欢研究一些技术框架,最近对该框架进行了一些研究分析,结合我自

前后端分离实现注册+登录(Vue3.0 + Django3.2)

博客地址:https://www.cnblogs.com/zylyehuo/ 一、使用 vite+webstorm 搭建 Vue 环境,构建前端 1、结构树 2、main.js import { createApp } from 'vue' //import './style.css' import

8.邮件发送功能

这里想补充下上个文章,感觉有点不太行。因为每次设计新的表结构就要去更新一下,所以,干脆随着我要做的功能去展示我的表结构设计,最终再把所有的表结构包括sql语句统计出来,感觉这样更新会方便很多~ 这个文章主要是发送邮件的功能。之前提过,我不是一下子把后端全部完成,然后再一下子搞定后端。所以我前后端是要

基于SqlSugar的开发框架循序渐进介绍(18)-- 基于代码生成工具Database2Sharp,快速生成Vue3+TypeScript的前端界面和Winform端界面

我们开发一个系统,在保证风格统一、代码强壮、可读性强等基础上,还能够结合代码生成工具快速开发相关后端,以及各种前端界面的,无疑是非常好的,既保证了项目的代码质量,又能够极大的提高开发效率。代码生成工具Database2Sharp是在完善的开发项目上,抽取出数据变化的部分,通过演绎、归纳、反复演绎和归纳等提炼方式抽取出相关的规则,以工具的方式来快速提高生产率,使得我们在开发各种不同的项目上的时候,能

我开源的H5商城2.0版本发布,强烈推荐

简介 waynboot-mall 是一套全部开源的 H5 商城项目,包含运营后台、H5 商城前台和后端接口三个项目 。实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、加入购物车、结算下单、支付宝/微信支付/易支付对接、我的订单列表、商品评论等一系列功能 。

前端下载文件的方式

概要 在前端下载文件是个很通用的需求,一般后端会提供下载的方式有两种: 直接返回文件的网络地址(一般用在静态文件上,比如图片以及各种音视频资源等) 返回文件流(一般用在动态文件上,比如根据前端选择,导出不同的统计结果 excel 等) 第一种方式比较简单,但是使用场景有限。第二种方式通用性更好,最近

Layui 2.8.0 正式发布,官网全新文档站朴实归来

前言 两年前 Layui 官网宣布了下线声明,说实话当时内心确实感慨万千毕竟这个免费为我们后端程序员提供的一个前端快熟开发框架的官网就这样下线了确实十分的惋惜,但是庆幸的是官网的下线,只是单纯一个网站自身生命周期的结束,它并不意味着 Layui 这样一个开源项目的停更,Layui 仍然在 Githu

如何使用iptables防火墙模拟远程服务超时

# 前言 超时,应该是程序员很不爱处理的一种状态。当我们调用某服务、某个中间件、db时,希望对方能快速回复,正确就正常,错误就错误,而不是一直不回复。目前在后端领域来说,如java领域,调用服务时以同步阻塞调用为主,此时一般会阻塞当前线程,等待结果。如果我们设置了超时时间还好,一段时间等不到就报错了