gpt4 book ai didi

javascript - 远离 Excel 工作簿/VBA - 技术升级

转载 作者:太空狗 更新时间:2023-10-30 01:37:04 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .


2年前关闭。







Improve this question




这将更像是一个意见问题,因为我在谷歌或我公司内任何对此有意见的 SME 上找不到任何答案。

我不确定意见问题是否合适,所以如果不合适,请随时删除,禁止我或任何规则可能规定的内容。

我正在处理大量用于数学计算的非常旧的工作簿,这些不用于生产,它们用于检查生产服务的结果。工作簿非常古老(大约 12 年以上),现在我称之为过去十年的修补/修复中的“困惑”。

我一直在研究 Handsontable (https://handsontable.com/) 一个 JS 库,它提供了一个像 Excel 这样的电子表格界面,可以处理单元格值的所有设置等......然后使用 Python(如果公司喜欢使用,则使用 Java J2EE)在服务器端或客户端进行一些繁重的计算(数据查找和预测),我觉得从 VBA 和 Excel 本身迁移将提供操作会喜欢的性能提升。

我觉得最初的工作会花费很多时间,但我相信我可以在 JS/Python/Java 中创建一组通用的库,一旦完成就可以减少大量需要完成的重新编码在 VBA 到 JS/Python 方面,80% 的 VBA 是常见的财务公式。

我担心的是,如果我们在 2 到 3 年内继续使用当前的工作簿,它们将变得完全无法维护,这主要是因为使用 VBA 我们没有适当的版本控制或使用现代自动化代码审查工具,我们可以通过使用新技术而受益,长期以来,努力工作将被证明是我们现在的开发人员和我 future 的同事的最佳选择。

如果规则和版主都同意这个问题,有没有人对此有任何意见?这值得吗?这是浪费时间吗?

注意:我不是经理、主管或任何有权做出上述决定的人,我只是一个觉得我......我们可以做得更好的开发人员。

感谢您的时间。

最佳答案

所以这可能不是每个人的答案,但我要告诉你我们决定首先投入时间的东西,因为这种方法已经在另一个应用程序上使用,以将它从一种旧语言转移到 Java。

我们在网上找到了几个将 VB/VBA 代码转换为 Python 的开源项目。

例子:

  • http://vb2py.sourceforge.net/
  • https://pypi.python.org/pypi/vb2py

  • 一旦我们让 Python 代码使用 native 包工作以允许 MS 互操作访问,我们将开始将 Python 代码重构为 Django 项目(这个选择并不牢固,但它是我的首选;<3 Django),包括创建包装器用于数据库访问的模型。我们觉得我们可以为 MS Interop 部分制作一个包装器,以允许它作为 Django 项目运行。

    最终的计划是让 Django 项目仅充当一个 REST Web 服务,用于对 Python 执行“繁重的数学/计算”功能,并且还可以在更强大的服务器上提高性能。此 REST 服务将使用处理所有当前 Excel 公式所需的插件回答来自 Handsontable ( https://handsontable.com/) JS 电子表格的调用,因此我们可以直接 1:1 复制我们的单元格值/样式(将工作簿转换为 xlsm 使所有存储为 XML 的数据)到 Handsontable 的“布局数组”;我认为我们将把它放在一个数据库中。所以最后,我们现在已经发布了 15 年以上的工作簿,并从等式中删除了 Excel。

    当前(我的)使用 Django 的原因是:
  • ORM
  • 独立的 Django 包使减少冗余代码更容易(我知道这可以用纯 Python 完成,但我觉得这是为其他人提供答案的好理由)
  • 使用一些非常流行的 REST 包之一轻松实现 Web 服务。
  • 还有其他人,但我相信每个人都会得到我的分数。

  • 以及使用 Python 的原因:
  • 在 Linux 上运行,运行 VBA 宏服务器端需要 Windows(不好:与 Linux 相比,VM 成本和更少的操作系统开销)。
  • 很容易学(反正我觉得)
  • 自定义方法装饰器将标准利率等内容应用于方法的返回金额,而不需要实际计算金额的函数中的利率代码(例如)

  • 谢谢

    关于javascript - 远离 Excel 工作簿/VBA - 技术升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41394663/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com