【问题标题】:Getting an event called after a document is loaded加载文档后调用事件
【发布时间】:2016-08-17 16:56:11
【问题描述】:

如何创建一个在加载文档后立即调用的方法(使用 Excel-DNA)?
Excel-DNA 中是否支持此类功能?

【问题讨论】:

    标签: c# .net excel excel-dna


    【解决方案1】:

    通过 Excel-DNA 插件,您可以完全访问 C API 和 COM 对象模型。对于这种情况,COM 对象模型提供事件来跟踪哪些工作簿是打开的。

    在加载项库中,您可以直接或使用ExcelDna.Interop NuGet 包添加对互操作程序集Microsoft.Office.Interop.Excel 的引用。

    那么安全使用 Excel-DNA 插件中的 COM 对象模型有两个要求:

    1. 仅从 Excel 主线程进行 COM 调用。
    2. 通过调用 ExcelDnaUtil.Application 获取托管 Excel 实例的根 Application 对象。

    要在打开工作簿时收到通知,然后为 Application 对象上的 NewWorkbookWorkbookOpen 事件添加事件处理程序。

    【讨论】:

    • 自 2007 年以来的所有 Excel 版本都有什么方法可以使用它?
    • COM 对象模型的这一部分在所有这些版本中都是相同的,因此您的 .NET 代码将在所有版本中工作。
    • 但是 NuGet 包的目标是 Excel 2010。如果我只使用这个包并将我的插件安装到另一个版本的 Excel 中,它会工作吗?
    • 是的 - 它会正常工作。这就像您在 Excel 2010 上用 VBA 编写代码一样 - 只要您仅使用运行它的 Excel 版本上可用的部分对象模型,它也可以在 Excel 2007 或 Excel 2016 上运行。
    猜你喜欢
    • 2013-09-09
    • 2011-05-22
    • 1970-01-01
    • 2016-04-08
    • 2023-04-04
    • 2016-08-07
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多