我正在尝试从PHP运行VBScript(在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
在我的本地计算机上运行此代码时,它运行正常,只是在Windows Server 2012主机上的IIS下运行时它无效。
造成这种情况的原因是什么?有什么办法可以解决吗?谢谢!
答案 0 :(得分:0)
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