1

我正在使用 ExcelDNA 库,它似乎结合了 Excel 的 C-API 和 COM 接口。

这些接口在 Excel 实现方面有何不同?从 Microsoft 网站 ( https://msdn.microsoft.com/en-us/library/office/bb687829.aspx ):

" 自定义 Excel 用户界面

对于许多版本的 Excel,C API 并不是自定义用户界面的最佳选择。VBA 对 Excel 对象和事件具有出色的访问权限。Excel 2007 中引入的用户界面在外观和底层技术上都与早期版本有很大不同。您可以通过使用托管代码资源来最好地自定义此界面。”

是什么让 COM 比 C-API 更适合编辑 Excel 的 UI?

4

2 回答 2

2

使用 VBA 或 .NET 而不是 C 或 C++ 编写用户界面的东西更容易、更快捷。

COM 接口可以访问比 C-API 接口更丰富的 Excel 对象和事件集,但 C-API 更适合编写 UDF,因为它的性能明显优于 COM,并且允许多线程、异步、RTD、 COM 不提供的集群等。

请注意,使用 ExcelDNA 中的 COM 意味着使用本质上很慢的 COM-INTEROP。

于 2017-01-05T12:01:49.197 回答
2

我同意 Charles 关于使用 C# 和 Excel DNA(或者公平地说是 Addin Express)构建 UI 组件和快速原型化新功能的简易性和更低的 TCO。

在宣布性能至关重要之前,请务必设定一些期望并衡量所涉及的计算或事件。如果存在真正对性能敏感的部分,请将其隔离,然后编写托管 C++ 代码,然后将这些代码与用 C# 或 VB.NET 编写的 UI 集成。

此外,只是对查尔斯关于 Excel DNA 和 VBA 的评论的一个小修正;他们确实一起工作。可以在以下位置找到几个示例:

于 2017-01-24T13:17:30.887 回答