目标:使用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