我怀疑一个工具可以帮助您做到这一点,如果该工具存在,我预计生成的 C# 代码会非常糟糕。Excel 的优势之一是它允许非常灵活的编程风格。缺点是生成的代码几乎没有结构,这使得人类和机器都难以遵循。最重要的是,逻辑可以采用多种形式,从 Excel 公式到 VBA 宏,这使事情变得复杂。
相比之下,C# 倾向于以类的形式看待世界,它们具有非常具体的职责。程序本质上协调类之间的消息传递,以便它们可以“相互交谈”并协作完成工作。
在这种情况下,我最多希望翻译工具产生一些令人不快的 C# 程序。最后,电子表格(没有 VBA)是一组位于单元格中并链接在一起的函数,没有足够的结构来提取具有功能的有意义的类/实体。
此外,我认为重新思考这个应用程序是一个机会。Web 应用程序可以轻松完成 Excel 无法完成的事情,反之亦然。我会专注于保留应用程序的精神,而不是“逐字逐句”的紧密翻译,但在设计它时不会过多考虑原始 Excel 应用程序。
拥有 Excel 应用程序的好处是您已经有了概念证明。我不会尝试转换代码,而是简单地追踪对其他计算字段有影响的所有输入点(可能使用审计),列出/图表影响什么(可能使用简单的气泡和箭头图),并尝试用简单的英语描述用户正在尝试做什么,以及用“实体”来描述正在发生的事情。例如=A2*(1-A3)
,我会说“产品净成本是它的成本时间(1 - 折扣率)”,而不是 。而不是=SUM(A5:A32)
,我会说“用户想要一个他订购的产品成本的摘要,它应该显示他的订单的总成本,以便他可以概览他的订单”。如果您设法提取具有良好名称和用例的域描述,这将更有利于开发人员在您可能想要的任何平台上编写支持这些要求的最佳应用程序。