Excel参考C#代码中的问题

我有一个在Excel中使用WORKDAY()函数的电子表格(我相信它存在于分析工具库/软件包/无论你在Excel中调用它)。 当我手动打开这个电子表格,并调用这个函数,它performance很好。

我有一个引用了WORKDAY()函数的单元格的macros:

Dim startDate as Date startDate = Cells(1,1) 

当我手动打开电子表格后运行macros时,此代码执行正常。 问题是当我尝试打开电子表格并从我的C#代码运行macros。 它会尝试获取startDate的值时失败。 当我看着那个单元格时,我看到一个#VALUE! 参考错误。 这似乎是不加载正确的引用,当我从我的C#代码打开电子表格。

有谁知道如何解决这个问题?

我所要做的就是强制加载.xla加载项,使用:

 app.Workbooks.Open(file_name) 

其中appMicrosoft.Office.Interop.Excel.Application一个实例,如果它已经打开,则什么都不会发生,否则它会加载分析插件。 要find加载项的path取决于Office的版本

  • Office 11:C:\ Program Files \ Microsoft Office \ OFFICE11 \ Library \ Analysis \ ANALYS32.XLL
  • Office 12:C:\ Program Files(x86)\ Microsoft Office \ Office12 \ Library \ Analysis \ ANALYS32.XLL