【发布时间】:2010-11-18 15:28:46
【问题描述】:
我有一个 C# 应用程序 (.Net 1.1) 并使用 excel interop 来显示一些报告。事实证明,打开excel工作簿时,XLSTART中的文件没有被读取,就好像运行了/automation命令行开关一样。
在从 C# 启动 XLS 工作表时,有什么方法可以启用 XLSTART?
【问题讨论】:
我有一个 C# 应用程序 (.Net 1.1) 并使用 excel interop 来显示一些报告。事实证明,打开excel工作簿时,XLSTART中的文件没有被读取,就好像运行了/automation命令行开关一样。
在从 C# 启动 XLS 工作表时,有什么方法可以启用 XLSTART?
【问题讨论】:
此行为是设计使然。您可以按照 Microsoft 的说明自行加载 XLSTART 文件夹中的加载项:
Add-ins do not load when using the CreateObject command in Excel
您的另一个选择是使用Process.Start 启动Excel,然后通过调用AccessibleObjectFromWindow 函数从正在运行的实例中启动一个自动化对象。
如何在 C# 或 VB 中执行此操作的示例代码可以在相关问题中找到:
请注意,您不必像给出的示例中那样使用后期绑定。像这样修改示例应该会给你一个强类型的Excel.Application 对象:
Excel.Application xlApp = ptr.GetType().InvokeMember("Application",
BindingFlags.GetProperty, null, ptr, null);
【讨论】:
因为它使用互操作,所以它将 Excel 作为自动化服务器打开。这与使用 /automation 开关相同。以这种方式打开 Excel 时,所有自动打开的文件和自动运行的宏都将被禁用。
【讨论】: