在支持的現有Web應用程序中,有一個頁面用於爲某些數據生成Excel電子表格。 Web服務器安裝了Excel 2002(這麼舊......),並使用Excel對象的自動化來完成這項工作。在IIS7.5上使用ASP生成Excel文件
我完全意識到,像這樣自動化Excel並不是微軟推薦的,但這是目前的工作方式,我從來沒有分配任何時間去改變這一點。
下面是一些示例代碼
Dim xlApp, xlBook, xlSheet
'create the Application Object and workbook object
Set xlApp = Server.CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
'turn off any alerts
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlApp.ScreenUpdating = False
xlApp.DisplayFormulaBar = True
xlApp.CommandBars("Standard").Visible = True
xlApp.CommandBars("Formatting").Visible = True
xlApp.CommandBars("Chart").Visible = True
xlApp.CommandBars("Control Toolbox").Visible = True
xlSheet.Cells(1, 1).Value = "Test"
xlApp.ScreenUpdating = True
xlApp.ActiveWorkbook.SaveAs ("C:\Temp\Test.xls"), -4143
xlApp.Quit
Set xlApp = Nothing
Web服務器是Windows 2003服務器,運行IIS6,一切工作愉快。但是,我們正在升級到使用Windows 2008服務器,運行IIS7.5並且上述代碼不再有效。返回的消息如下:
Microsoft Excel error '800a03ec'
SaveAs method of Workbook class failed
xxxxxx/Test_Excel.asp, line 42
的事情是,是,如果我創建一個簡單的.vbs文件,與上面的代碼並運行它,這一切都按預期工作。只有在ASP頁面運行時纔會失敗。
它試圖寫入的文件夾應具有正確的權限(我向其添加了「Everyone」,並具有完全訪問權限)。
有沒有人有任何建議,爲什麼會發生這種情況?
謝謝!
乾杯。目前我們已經切換到使用Excel XML,因此不再需要Excel.Exe。不過,我會盡快回去嘗試你的建議,看看這是否適用於未來的參考。 – 2011-02-21 11:01:15