我正在使用执行一些Excel自动化的Web应用程序(我知道 - 不是首选解决方案)。
我使用的是Excel 2007作为我的开发平台,但是目标服务器使用的是Excel 2003.尽管我在开发过程中明确选择了Excel 11,但在尝试加载到目标服务器上的Excel 12互操作后遇到了很多麻烦。已经采用后期绑定而不是早期绑定。
这使我能够实现Excel的实例化(我可以看到Excel进程在目标服务器上的任务管理器中启动)。
但是我无法调用后期绑定的Workbooks对象的Open方法。它向我抛出了这个错误:
"Unable to get the Open property of the Workbooks class"
我一直在尝试一些不同的事情,并尝试了以下内容:
在所有三种情况下,Excel自动化成功。只有当我部署ASP.NET应用程序时,才会出现此错误。在一个非常简化的形式中,代码类似于:
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作为此用户清除所有初始设置的东西。
答案 0 :(得分:2)
我遇到了同样的问题,我发现有些网站会说以下内容:尝试转到文件 - 选项 - 加载项 - 在管理下拉列表中选择diabled加载项 - 点击go - 然后在其中启用任何内容。< / p>
它对我不起作用,但可能适合你。
答案 1 :(得分:1)
更好的迟到答案,然后永远......
开发VBscript时,请确保处理的错误无法正确关闭Excel Book。
我遇到了和你一样的错误,但我发现当我的逻辑中出现错误时,解释器不会关闭Excel Book,使其无法进一步处理。
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"
确保使用对文件进行操作的所有函数处理错误(SaveAs,Close等等)
答案 2 :(得分:0)
省略最后一个参数对我来说是固定的。
xlBook = xlApp.Workbooks.Open("somefile.xls", , True, , , , , , , , , , , , )