2021年度总结 | 葡萄城软件开发技术回顾(上)

2021年度总结 | 葡萄城软件开发技术回顾(上)

随着冬奥会各项精彩比赛的进行,2022年的序幕逐渐被拉开。

这一年,云原生领域风起云涌,容器大规模应用,k8s可称为炙手可热的话题;这一年,大数据技术体系1.0基本成型,跨过技术复兴与狂潮期,数据平台的商业价值也在逐渐显现,带来大量投资创业机会;这一年,Vue、React、Angular三驾马车仍旧在大前端领跑,整体技术逐渐趋于稳定,未来可期;这一年,元宇宙风头正旺,.net 6的上线也为大家津津乐道。

而这一年对葡萄城而言,也同样是从未停止开发"赋能开发者"脚步,不断探索的一年。

2021,我们依旧秉持着"赋能开发者"使命,匠心、耐心做技术,真心、恒心来分享。

接下来让葡萄带着你一起来看看——葡萄城的2021。

你的"前端表格"请注意查收

你可能没听过SpreadJS,,但是你一定听过在线协同办公。

2021年度总结 | 葡萄城软件开发技术回顾(上)

作为纯前端的类Excel表格控件,在线协同一直是我们的强项。在过去一年的分享中,我们为大家分享了葡萄城在纯前端电子表格中的许多技术内幕,包括双缓存画布和油画分层画布绘制公式引擎的底层逻辑系列、利用稀疏矩阵进行时空置换提升性能问题,以及金融专业数据IRR/NPV的计算处理,大家有兴趣可以自行查看。

现在我们有一些新家伙,向大家介绍。

集算表(TableSheet)

2021年度总结 | 葡萄城软件开发技术回顾(上)

为了让前端的表格不但具备类 Excel 的公式计算能力,同时还拥有了传统表格控件的高性能,我们希望将传统的高性能结构化表格 (Grid) 与公式计算引擎 (CalcEngine)结合在一起。

为了实现这样的设计,我们首次提出了数据管理容器 (DataManager) 的概念,将原有在后端才具备的关系数据引擎,完全在前端实现,从而实现了在大量数据(百万行)的情况,秒级的加载、排序、筛选,而这所有的操作,都是完全在前端浏览器中,通过JavaScript 代码实现。

数据管理容器 (DataManager)不仅承担了数据存储与索引的功能,同时还实现了多数据表关系、视图、CRUD等功能。

集算表(TableSheet)则负责将数据管理容器 (DataManager)中整理好的数据、视图、关系通过SpreadJS 本身的"Canvas画布"呈现在网页中。

通过上述功能的结合,在面对大数据量的分析、合并、处理场景上,可以为用户提供更稳健的支持,减少传统表格系统对后台的过度依赖,可以将更多的数据操作在前端完成,从而释放宝贵的后端和带宽资源。

其他亮点

2021年度总结 | 葡萄城软件开发技术回顾(上)

在前端计算引擎性能与兼容问题上,我们也进行了一些优化:

兼容性方面:支持了微软最新的 XLOOKUP/XMATCH系列函数,同时在新版本中加入了对刚刚发布的 LAMBDA 函数的兼容

在功能方面:内置450种以上的标准 Excel函数支持,同时支持自定义函数、异步函数扩展能力

在性能方面:秒级完成上万公式的解析及计算

同时,随着流行前端框架的不断更新,现在也实现了对 Vue3、Angular 13的支持。

除了前端性能的优化,后端的GcExcel现可以支持.NET 6 平台;为了让打印更加方便,集成了打印驱动,直连物理打印机,完成内容直接输出打印。

学道须当猛烈,始终确守初心,对于表格领域的技术探索,我们从未停止,是匠心,更是创新。

让复杂报表不再复杂的报表

复杂报表的复杂,做过报表的同学都了解。2021年,报表领域的深耕我们同样不曾停止。

2021年度总结 | 葡萄城软件开发技术回顾(上)

.Net平台

首先必须要提的就是Blazor Viewer。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggdzy.html