Я пытаюсь запустить VBScript из PHP (работает под FastCGI / IIS), который изменяет файл xls.
VBScript выглядит так:
...
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = False
objXLApp.DisplayAlerts = False
Set objXLWb = objXLApp.Workbooks.Open(FilePath)
Set objXLWs = objXLWb.Worksheets(1)
objXLWs.Cells(1, 1) = "This is a test!"
objXLWb.Save
...
Файл test.php выглядит так:
<?php
echo shell_exec("cscript.exe Test.vbs test.xls");
Если я открываю консоль и запускаю php test.php
он корректно изменяет файл xls, но если я сбрасываю файл xls и посещаю test.php в окне браузера, он ничего не делает. Возиться с WShell.Echo, кажется, что он зависает / останавливается на objXLApp.Workbooks.Open(FilePath)
линия.
Когда я запускаю этот код на своем локальном компьютере, используя php -S
он работает отлично, просто при работе под IIS на хосте Windows Server 2012 он не работает.
Что вызывает это? Есть ли способ это исправить? Спасибо!
C:\Users\User>"C:\Users\User\Desktop\New Text Document.vbs" "C:\Users\User\Desktop\David\Documents\Payrates.xls"
а также
Set objXLWb = GetObject(WScript.Arguments(0))
Set objXLWs = objXLWb.Worksheets("Sheet2")
objXLWs.Cells(1, 1) = "This is a test!"objXLWb.Save
Других решений пока нет …