1

我有一个带有一个入口页面和一个结果页面的 Excel 应用程序。根据输入到输入页面的数据和一些静态表格,还有一些其他工作表可以计算值并稍后在结果页面中进行汇总。

我需要将此应用程序转换为 Web 应用程序并将整个逻辑从 excel 移动到 C#。会有一些 UI 页面和 1 个结果页面,并且当前在 excel 应用程序中的工作表计算将被移动到不同的 C# 类。

是否有任何工具可以做到这一点,或者我们是否必须手动将现有逻辑的每一部分转换为 C#?如果我们必须手动完成,那么是否有任何工具可以帮助将逻辑汇总到文本文件中,这样我们就不必在 Excel 中回溯整个计算来重构逻辑?

4

4 回答 4

2

我不会尝试“转换”解决方案。从头开始用 C# 构建它。它们是用不同的语言编写的,UI 不能重复使用。

于 2012-08-04T04:30:41.727 回答
2

我怀疑一个工具可以帮助您做到这一点,如果该工具存在,我预计生成的 C# 代码会非常糟糕。Excel 的优势之一是它允许非常灵活的编程风格。缺点是生成的代码几乎没有结构,这使得人类和机器都难以遵循。最重要的是,逻辑可以采用多种形式,从 Excel 公式到 VBA 宏,这使事情变得复杂。

相比之下,C# 倾向于以类的形式看待世界,它们具有非常具体的职责。程序本质上协调类之间的消息传递,以便它们可以“相互交谈”并协作完成工作。

在这种情况下,我最多希望翻译工具产生一些令人不快的 C# 程序。最后,电子表格(没有 VBA)是一组位于单元格中并链接在一起的函数,没有足够的结构来提取具有功能的有意义的类/实体。

此外,我认为重新思考这个应用程序是一个机会。Web 应用程序可以轻松完成 Excel 无法完成的事情,反之亦然。我会专注于保留应用程序的精神,而不是“逐字逐句”的紧密翻译,但在设计它时不会过多考虑原始 Excel 应用程序。

拥有 Excel 应用程序的好处是您已经有了概念证明。我不会尝试转换代码,而是简单地追踪对其他计算字段有影响的所有输入点(可能使用审计),列出/图表影响什么(可能使用简单的气泡和箭头图),并尝试用简单的英语描述用户正在尝试做什么,以及用“实体”来描述正在发生的事情。例如=A2*(1-A3),我会说“产品净成本是它的成本时间(1 - 折扣率)”,而不是 。而不是=SUM(A5:A32),我会说“用户想要一个他订购的产品成本的摘要,它应该显示他的订单的总成本,以便他可以概览他的订单”。如果您设法提取具有良好名称和用例的域描述,这将更有利于开发人员在您可能想要的任何平台上编写支持这些要求的最佳应用程序。

于 2012-08-04T19:38:29.207 回答
0

也许你可以使用谷歌文档。它允许创建脚本和使用公式。

于 2012-08-04T12:13:15.867 回答
0

我同意法比奥帕戈蒂。即使有一个神奇的“转换器”,谁敢在未来的更新中维护这个机器编码的应用程序?

考虑您的第二个问题,寻找替代帮手,我发现[ CTRL]+[`]组合键可以帮助您解决此问题:此快捷方式显示单元格中的所有公式,因此您可以更舒适后面没有遗漏任何东西。我希望。

PS:文本文件?只需应用快捷方式并将工作表“打印”到 PDF 文件即可。

于 2012-08-04T04:46:21.913 回答