В существующем веб-приложении, которое я поддерживаю, есть страница, которая используется для создания электронной таблицы Excel для некоторых данных.На веб-сервере установлен Excel 2002 (такой старый ...), и он использует автоматизацию объекта Excel для выполнения этой работы.
Я полностью осознаю, что подобная автоматизация Excel не рекомендуется Microsoft, ноэтот способ в настоящее время работает, и мне никогда не выделяется время, чтобы изменить это.
Вот пример кода
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
Веб-сервер является сервером 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-страницы.
Папка, в которую она пытается записать, должна иметь правильные разрешения (я добавила «Все» к ней с полным доступом).
У кого-нибудь есть предложения относительно того, почему это происходит?
Спасибо!