我正在使用一个执行一些Excel自动化的Web应用程序(我知道 – 不是首选解决方案).
我使用Excel 2007作为我的开发平台,但目标服务器使用的是Excel 2003.尽管在开发期间我明确选择了Excel 11,但在尝试加载到目标服务器上的Excel 12互操作后遇到了很多麻烦,我已经求助于使用后期绑定而不是早期绑定.
这使我能够实现Excel的实例化(我可以看到Excel进程在目标服务器上的任务管理器中启动).
但是我无法调用后期绑定的Workbooks对象的Open方法.它向我抛出这个错误:
"Unable to get the Open property of the Workbooks class"
我一直在尝试一些不同的东西,并尝试了以下内容:
>尝试相同的Workbook.使用后期绑定VBScript(例如vbs文件)打开调用.
>尝试使用相同的Workbook.使用后期绑定VBA代码打开调用(例如在Excel中).
>尝试使用相同的Workbook.在Windows窗体应用程序中使用后期绑定.NET代码打开调用.
在所有三种情况下,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作为此用户清除所有初始设置的东西.