Excel自动化工作簿。打开失败:“无法获得打开的属性…”

我正在使用执行一些Excel自动化的Web应用程序(我知道 – 不是首选解决scheme)。

我正在使用Excel 2007作为我的开发平台,但目标服务器使用Excel 2003.尽pipe我在开发过程中明确select了Excel 11,但遇到了许多令人头疼的事情,即尝试将Excel 12互操作加载到目标服务器上,使用迟绑定而不是早绑定。

这让我得到尽可能实例化Excel(我可以看到Excel进程在目标服务器上的任务pipe理器中启动)。

但是我无法调用后期工作簿对象的Open方法。 它向我抛出这个错误:

"Unable to get the Open property of the Workbooks class" 

我一直在尝试一些不同的事情,并尝试了以下几点:

  • 尝试相同的Workbooks.Open调用使用后期绑定的VBScript(例如一个VBS文件)。
  • 尝试使用迟绑定的VBA代码(例如在Excel中)打开相同的Workbooks.Open调用。
  • 在Windows窗体应用程序中使用延迟绑定的.NET代码尝试相同的Workbooks.Open调用。
  • 在这三种情况下,Excel自动化都成功了 。 只有当我部署ASP.NET应用程序时,这个错误才会出现。 在一个非常简化的forms,代码类似于:

     Dim xlApp As Object 'Excel.Application Dim xlBook As Object ' Excel.Workbook xlApp = CreateObject("Excel.Application") 'New Excel.Application xlBook = xlApp.Workbooks.Open("somefile.xls", , True, , , , , , , , , , , , False) 

    有没有人有什么想法可能会发生什么? 我检查了用户,Excel进程开始,并且是成功运行Windows Forms .NET应用程序的用户。 我已经打开Excel作为这个用户来清除所有的初始设置的东西。

    我遇到了同样的问题,我发现一些网站说:下面试试去文件 – 选项 – 加载项 – 在pipe理下拉列表中selectdiabled加载项 – 点击去 – 并启用任何内容。

    它不适合我,但它可能适合你。

    更好的答案,然后永远不会…

    当开发一个VBScript,确保你处理的错误,防止正确closures你的Excel书。

    我得到了同样的错误,但是我发现,当我的逻辑发生错误时,解释器不会closuresExcel书籍,使其无法进一步处理。

     Dim XLWkbk 'Excel workbook Set xlApp = CreateObject("excel.application") On Error Resume Next Set XLWkbk = xlApp.Workbooks.Open("somefile.xlsm") If Err.Number <> 0 Then ' Catch your error WScript.Echo "Error while opening: " & Err.Number & " " & Err.Description XLWkbk.Close False ' Close your workbook. xlApp.Quit ' Quit the excel program. WScript.Quit Err.Clear End If WScript.Echo "Opened" 

    一定要处理错误与文件上运行的所有function(另存为,closures等…)