excel 公式作为算法程序,可行吗?

2022-02-16 17:34:22 +08:00
 wxiao333

有这么一个需求: 把一个巨复杂的 excel 里面的公式代码化,这个 excel 有多复杂呢,大概 10 几个 sheet ,每个 sheet 里面都有大量公式计算,一共有 50 多个输入参数,50 多个输出量,中间环节变量超过 1000 个。。。

现在要把这个 excel 代码化,工作量是蛮大的,想到一个办法:

能不能把这个 excel 当做一个计算程序,参数丢给 execl 输入数据的相应位置,立马就能出计算结果,去相应位置获取结果即可,省去了编码。

这个需求 python 或其他语言下 有可以实现的库吗 或者有其他更好的解决方案吗?

4367 次点击
所在节点    Python
28 条回复
akira
2022-02-16 23:12:52 +08:00
vba ,c#,delphi 做这个事情都很容易。但是稳定性才是最大的问题
wxiao333
2022-02-17 08:51:41 +08:00
@kilasuelika 非常感谢,我仔细研究下
wxiao333
2022-02-17 08:52:01 +08:00
@a132811 谢谢,我研究下您的工具
mindset
2022-02-17 09:17:39 +08:00
我做过这方面的工作。
1 ,首先,我用 java 语言写了程序把 excel 文件转成 xml 文件,便于读取。
2 ,我写过一个 c 语言的,另一个是 Swift 语言的库,用于把 xml/excel 里的公式进行解析和运算。
3 ,多个 sheet 可以一起运算,从左到右从上到下运算,把结果写回 sheet 中。运算效率还不错。
4 ,我的这个项目已经实际应用于某保险公司的 app 中。
如果你需要,我可以写一个任意语言的 excel sheet 运算引擎。其实都是类似。
shinession
2022-02-17 09:29:02 +08:00
xlwings ?直接调用 excel 计算,不用写多少代码
churchill
2022-02-17 11:03:00 +08:00
为啥要强调 python
干这事 c#写一个 vsto add-in 开一个 web-service 比用 python 香吧
wxiao333
2022-02-19 21:30:38 +08:00
更新一个后续吧,目前选择用 xlwings 这个包实现了功能,这个包有一点好处是他本身是基于 win32com 的,所以等于是在后台把这个 excel 文件给打开了,然后直接操作,实时写入数据,读取结果,非常方便。缺点是速度比较慢,特别是初次打开需要 2,3 秒的时间,相当于打开一个 excel 文件的时间。另一个缺点是需要 win 服务器和安装 excel ,不过我装了 office2007 就可以正常运行。另一个缺点是多线程方面的,这个有很多处理方式,大家可以自己搜索一下。
dragonszy
2023-03-01 09:41:58 +08:00
也有类似的大表格计算需求,能达到 Excel 或者 WPS 原始计算速度的不多。开源的库基本加载不了大量嵌套计算的表格。测试下来 WebWPS ,OnlyOffice 和 SpreadJS 可以计算。Python 库 PyCel ,Go 的 Excelize 均无法完成计算。xlwings 是一个解决方案,但是得 windows 服务器。

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

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

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

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

© 2021 V2EX