我们目前有一个包含大量 VBA 代码的 Excel 电子表格。VBA 代码负责:
- 操作、转换和格式化工作表数据。
- 调用 C# 和 C++ COM 公开的功能。在这样做时,将工作表数据编组到 C#/C++ 方法中,获取结果并使用结果更新工作表。
以及其他所需的实用程序代码。
我们现在想向 Excel 工作簿添加一个新工作表,并且不需要任何 VBA。我们想使用 C#。正如我所看到的,我仅限于以下选项:
- 将整个项目移植到 VSTO 手动将 VBA 重新编码为 VSTO 项目中的 C#。
- 用 C# 编写新工作表的功能并通过 COM 公开它。C# 代码将使用 Excel PIA 来更新工作表。该工作表需要一个非常薄的 VBA 层来将数据编组到 C# 方法。
我认为 ManagedXLL 不会在这方面对我有所帮助,因为我的代码要求与处理工作表数据有关,而与使用结果更新工作表有关。
请评论/询问更多细节。
谢谢。