我正在尝试自动执行xll格式的Excel加载项的一些测试。我在加载xll时遇到问题。我用C#编写,我的代码如下所示:
using Microsoft.Office.Interop.Excel;
Application xlApp;
Workbook xlWorkBook;
Worksheet xlWorkSheet;
// create application, open workbook, etc ...
// now try to register xll
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
但是,这总是返回false。我尝试通过记录宏手动加载xll时看到Excel秘密执行的操作。宏看起来像:
Sub Macro1()
ChDir "C:\SomePath"
Application.RegisterXLL Filename:= _
"C:\SomePath\Whatever.xll"
End Sub
唯一的区别似乎是ChDir,因此我将代码更改为:
FileSystem.ChDir("C:\\SomePath");
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
但这仍然行不通。另一个奇怪的事情是,当我在RegisterXLL行之前放置一个断点并首先手动加载xll时,RegisterXLL方法将返回true。但是否则,它将返回false。
最佳答案
感谢所有的建议。
我通过更改Excel应用程序的默认文件路径解决了该问题。
Application.xlApp = new ApplicationClass();
xlApp.DefaultFilePath = "C:\\SomePath";
xlApp.RegisterXLL("Whatever.xll");