我有一个C#应用程序(.Net 1.1)并使用excel interop来显示一些reoprts。事实证明,打开excel工作簿时,XLSTART中的文件不会被读取,就好像已经运行了/ automation命令行开关一样。
从C#启动XLS表时,有没有办法启用XLSTART?
答案 0 :(得分:2)
此行为是设计使然。您可以按照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);
答案 1 :(得分:0)
因为它使用互操作,所以它将Excel作为自动化服务器打开。这与使用/ automation开关是一回事。以这种方式打开Excel时,将禁用所有自动打开的文件和自动运行的宏。