我正在尝试自动执行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");

09-27 06:33