asp.net Excel自动化工作簿,打开失败:“无法获取打开属性...”

cld4siwp  于 2023-08-08  发布在  .NET
关注(0)|答案(4)|浏览(179)

我正在使用一个执行一些Excel自动化的Web应用程序(我知道-不是首选解决方案)。
我使用Excel 2007作为开发平台,但目标服务器使用Excel 2003。在开发过程中,尽管我明确选择了Excel 11,但在尝试将Excel 12互操作加载到目标服务器上时遇到了很多麻烦,因此我采用了后期绑定而不是早期绑定。
这使我能够示例化Excel(并且我可以看到Excel进程在目标服务器的任务管理器中启动)。
但是,我无法调用后期绑定的Workbooks对象的Open方法。它向我抛出了这个错误:

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

字符串
我一直在尝试一些不同的东西,并尝试了以下几点:
1.尝试相同的工作簿。使用后期绑定的VBScript打开调用(例如vbs文件)。
1.使用后期绑定的VBA代码打开调用(例如:在Excel中)。
1.尝试在Windows窗体应用程序中使用后期绑定的.NET代码执行相同的Workbooks.Open调用。
在所有三种情况下,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,以清除所有初始设置的东西。

oipij1gg

oipij1gg1#

我也遇到了同样的问题,我发现一些网站说:尝试去文件-选项-加载项-在管理下拉列表中选择dailed加载项-单击执行-并启用其中的任何内容。
对我没用但对你可能有用。

dtcbnfnu

dtcbnfnu2#

迟回答总比不回答好。。
在开发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等)处理错误。

2w3kk1z5

2w3kk1z53#

省略最后一个论点为我解决了这个问题。

xlBook = xlApp.Workbooks.Open("somefile.xls", , True, , , , , , , , , , , , )

字符串

s5a0g9ez

s5a0g9ez4#

在我的情况下,工作簿没有得到正确保存和宏被禁用。确保在运行VBA脚本之前打开工作簿并“启用宏”。

相关问题