目標:使用PHP調用將xls/xlsx文件轉換爲csv的vbs。將參數傳遞給蝙蝠(或vbs)在php中
問題:如何將源文件路徑和目標文件路徑傳遞給將xls/xlsx轉換爲csv並在PHP Web應用程序中運行該vbs的vbs?
詳細信息:我有一個工作的VBS,需要源文件路徑和目標文件路徑,並將源文件路徑中的xls/xlsx轉換爲csv。我可以從Windows cmd行執行它,它完全符合我想要的。我也可以將執行命令放入bat文件並運行bat文件以獲得相同的結果。但是,當我在PHP中使用exec()/ shell_exec()/ system()執行相同的命令時,不會創建csv。 (如果我嘗試使用system()從PHP運行bat,bat文件的內容顯示在頁面上,實際上,echo conversion complete!打印出「echo conversion complete!Conversion complete。」)我還沒有看到任何錯誤呢。
注:我知道PHPExcel,我不想使用它。
excelToCsv.vbs
On Error Resume Next
if WScript.Arguments.Count < 2 Then WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>"
Wscript.Quit
End If
csv_format = 6
Set objFSO = CreateObject("Scripting.FileSystemObject")
src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1))
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)
oBook.SaveAs dest_file, csv_format
oBook.Close False
oExcel.Quit
batConverter.bat
excelToCsv.vbs conversionTestSourceMS2003.xls batTest.csv
echo Conversion Complete!
index.phtml
<?php
system("cmd /c batConvert.bat")
?>
注意:上述所有文件(以及conversionTestSourceMS2003.xls)都位於同一目錄中。我還沒有實現任何方式來傳遞參數(因爲我不能得到,如果這一切都硬編碼它甚至工作...)
設置: PHP5,Zend框架,WAMP,Windows 7的(本地主機)。
你能告訴我們一個你用來執行VBScript的PHP的例子嗎?我想看看你是如何指定路徑。 – jveazey 2012-07-06 03:18:51
@jveazey是的,那是** index.phtml **,現在所有頁面都有一個通過'system()'調用我的bat文件。所有的文件都在同一個文件夾中,所以路徑_should_是正確的。我也嘗試完整路徑(從C :)到無效... – lostphilosopher 2012-07-06 14:06:25
是否有必要使用批處理文件? – jveazey 2012-07-06 16:33:11