请教一个涉及到读 Excel 公式动态计算的问题。

62 天前
 left7410

请教一个涉及到读 Excel 公式动态计算的问题。

需求描述: 需求是要做一个财务预算的复杂 Excel 表格功能,第一行和 C 列的数据可以手工填写,填写后触发相对应的计算逻辑(每个格子都有不同的公式),最终将页面上所有的数据入库,下次进入页面将数据重新展示出来。

难点: 奇葩就奇葩在,在 A 页面修改一些的值,B 页面的所有数据要根据新修改的数后台重新计算一遍并覆盖之前的数据。这样 A 页面的数据相当于字典,B 页面的第一行数据读的是 A 页面提前录入好的值。

实现方式: 领导要求用 Java 来实现,所有计算逻辑在后台做,前端只做展示( React ),本来可以用帆软报表实现就很简单,但卡点在于,A 页面填报后,B 页面无法后台进行动态的重新计算,必须要重新进入 B 页面后手工提交才行。

目前在网上找到解决方案有: Java 使用 POI 获取 Excel 公式并计算公式得到计算结果值,但这种读出来的数据难以维护。

Excel 内容大概是这样的: https://www.douban.com/photos/photo/2923046300/large

1290 次点击
所在节点    程序员
9 条回复
SanjinGG
62 天前
目前看下来和 Excel 没太大关系啊? a 输入数据给后端计算好存表里,前端每次进入 b 页面获取下数据,再给个导出 Excel 功能就行了吧?
visper
62 天前
听起来像是后端会有一个 excel 模板,模板里面的一些单元格的公式是别人设置好的。然后前端填写了值,把值填写到对应的单元格,然后获取出自动计算后的单元格的值。 问 ai 的话说 poi 里面有这些触发 excel 自动计算的 FormulaEvaluator ,但是支持公式到什么程度不知道.
execute
62 天前
尝试为每个 sheet 页建立一个数据库表和视图呢,表存未经计算原始数据,视图里面就是计算和取数的逻辑,查询的时候直接查视图
eric3797
62 天前
何必杀鸡用牛刀,这个直接用 excel 自带的锁定隐藏单元格就行,不显示公式计算过程只显示结果,允许编辑的内容取消锁定即可,如示例 example: https://ttttt.link/f/6865f83c9d139
left7410
62 天前
@SanjinGG b 页面的 C 列可以手工填写
left7410
62 天前
@visper 是这样的。用户会给一个 Excel ,里面有 A 、B 两个 sheet 页,A 页面录入数据后,在 B 页面读取 A 页面录入好的值,然后再微调 C 列的值,最终将结果算出来的结果存在来。
补充:B 页面里面的公式都是用户定义好的。C 列和 第 1 行的值为用户手工录入,现在就是要将这个 Excel 的逻辑放到 Java 代码里去实现。但是通过代码实现就涉及到前后端交互,以及公式计算的问题。
left7410
62 天前
@execute 好像打开了新思路。您的意思是计算逻辑使用 SQL 实现,表只做存储吗?目前也是一个 sheet 页一个表的设计的
SanjinGG
62 天前
@left7410 #5 直接 a 页面再加一个可选输入就行吧,反正 a 页面的那个数据也是要存库里的
execute
62 天前
@left7410 #7 是的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1142707

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX