Convierta XLS a CSV en la línea de comando

Resuelto Joel asked hace 14 años • 17 respuestas

¿Cómo podría convertir un archivo XLS a un archivo CSV en la línea de comando de Windows?

La máquina tiene instalado Microsoft Office 2000. Estoy abierto a instalar OpenOffice si no es posible usar Microsoft Office.

Joel avatar Dec 07 '09 13:12 Joel
Aceptado

Abra el Bloc de notas, cree un archivo llamado XlsToCsv.vbs y péguelo en:

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
    Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done"

Luego, desde una línea de comando, vaya a la carpeta donde guardó el archivo .vbs y ejecute:

XlsToCsv.vbs [sourcexlsFile].xls [destinationcsvfile].csv

Sin embargo, esto requiere que Excel esté instalado en la máquina en la que se encuentra.

ScottF avatar Dec 07 '2009 14:12 ScottF

Una versión ligeramente modificada de la respuesta ScottF, que no requiere rutas de archivo absolutas:

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

He cambiado el nombre del script a ExcelToCsv, ya que este script no se limita en absoluto a xls. xlsx Funciona bien, como era de esperar.

Probado con Office 2010.

plang avatar May 31 '2012 14:05 plang