VBScript Excel工作簿。从PHP网站执行时打开不工作

时间:2016-03-20 02:01:37

标签: php excel vbscript

我正在尝试从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下运行时它无效。

造成这种情况的原因是什么?有什么办法可以解决吗?谢谢!

1 个答案:

答案 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