远离Excel Workbook/VBA - 技术升级

Tem*_*102 5 javascript python migration excel-vba handsontable

这将是一个更多的意见问题,因为我无法在谷歌或我公司内任何真正对此发表意见的中小企业找到任何答案.

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

我正在处理大量用于数学计算的非常旧的工作簿,这些工作簿不用于生产,它们用于检查生产服务的结果.工作簿非常陈旧(大约12年以上),现在是我在过去十年的修补/修复中称之为"混乱"的东西.

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

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

我担心如果我们继续使用当前的工作簿再过2 - 3年,它们将变得完全无法维护,很多事实上,使用VBA我们没有适当的版本控制或使用现代自动化代码通过使用更新的技术我们可以从中受益的审查工具,在长期错误的意愿中,努力工作将被证明是我们的开发人员现在和未来同事的最佳选择.

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

注意:我不是经理,导演或任何有权做出上述决定的人,我只是一个感觉到我的开发者......我们可以做得更好.

感谢您的时间.

Tem*_*102 0

因此,这可能不是每个人的答案,但我将向您介绍我们决定首先投入时间的内容,因为此方法已在另一个应用程序上使用,将其从旧语言转移到 Java。

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

例子:

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

最终的计划是让 Django 项目仅充当 REST Web 服务,用于对 Python 执行“繁重的数学/计算”功能,并且也可以位于更强大的服务器上,以全面提高性能。此 REST 服务将应答来自 Handsontable ( https://handsontable.com/ ) JS 电子表格的调用,其中包含处理所有当前 Excel 公式所需的插件,因此我们可以直接 1:1 复制单元格值/样式(将Workbook to xlsm 使所有数据以 XML 形式存储)到 Handsontable 的“布局数组”;我认为我们会将其放入数据库中。因此,最终我们已经给出了具有 15 年以上使用寿命的 Workbook,并将 Excel 从等式中全部删除。

当前(我的)使用 Django 的原因是:

  1. ORM
  2. 独立的 Django 包使得减少剩余代码变得更容易(我知道这可以只用纯 Python 来完成,但我觉得这是为其他人提供我的答案的一个很好的理由)
  3. 使用一些非常流行的 REST 包之一可以轻松实现 Web 服务。
  4. 还有其他的,但我相信每个人都会明白我的观点。

以及Python的原因:

  1. 在 Linux 上运行,运行 VBA 宏服务器端需要 Windows(缺点:与 Linux 相比,VM 成本更高,操作系统开销更少)。
  2. 很容易学(反正我是这么觉得)
  3. 自定义方法装饰器会将标准利率等内容应用于方法的返回金额,而无需在计算金额的实际函数中使用利率代码(作为示例)

谢谢