¿Cómo convertir un archivo Excel con varias hojas en un conjunto de archivos CSV?
23
Tengo un archivo de Excel con 20 hojas. ¿Hay alguna forma de convertir rápidamente el archivo en 20 archivos CSV, uno para cada hoja?
Puedo hacerlo manualmente, por supuesto, pero tendré que procesar mucho estos archivos, por lo que sería genial tener algún tipo de utilidad de línea de comandos (o incluso modificadores de línea de comandos de Excel).
El método de vembutech es definitivamente una solución más pulida. Aquí hay una macro ligera de VBA que exportaría todas las hojas de un libro de trabajo.
Va en la carpeta de libros activos todos los nombres son workbookname_sheetname.csv
Sub exportcsv()Dim ws AsWorksheetDim path AsString
path =ActiveWorkbook.path &"\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Activate
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
Next
End Sub
EDITAR:
Por el comentario. La macro original simplemente usa la función guardar como (que es como cerrar el original). Si desea hacer esto mientras deja abierto el original, debe copiarlo en un nuevo libro de trabajo, guardar, cerrar el nuevo libro de trabajo.
Sub exportcsv()Dim ws AsWorksheetDim path AsString
path =ActiveWorkbook.path &"\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next
End Sub
seleccione el esquema de nomenclatura csv y haga clic en iniciar conversión que convertirá todos los archivos xls de la carpeta a archivos csv
Si su carpeta tiene 3 archivos xls con 3 hojas, entonces crearía 9 archivos csv para cada una de las hojas y puede identificar el archivo csv con un esquema de nomenclatura csv
Aquí hay un script de python getsheets.py ( espejo ), debe instalar pandasy xlrdantes de usarlo.
Ejecuta esto:
pip3 install pandas xlrd # or `pip install pandas xlrd`
¿Cómo funciona?
$ python3 getsheets.py -h
Usage: getsheets.py [OPTIONS] INPUTFILE
Convert a Excel file with multiple sheets to several file with one sheet.
Examples:
getsheets filename
getsheets filename -f csv
Options:
-f, --format [xlsx|csv] Default xlsx.
-h, --help Show this message and exit.
Convierte a varios xlsx:
$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!
All Done!
Además: pip3 install openpyxl click ... y luego me meto ImportError: cannot import name 'get_column_letter'en la línea 513 de pandas excel.py; Supongo que mi instalación de pandas está rota de alguna manera.
Jameson Quinn
3
Una macro de ExtendOffice para guardar las pestañas en su carpeta Documentos:
Sub ExportSheetsToCSV()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = CurDir & "\" & xWs.Name & ".csv"
Application.ActiveWorkbook.SaveAs Filename: = xcsvFile, _
FileFormat: = xlCSV, CreateBackup: = False
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub
Run-time error '1004': Application-defined or object-defined error
mi Excel para Mac.En lugar de un script por lotes, puede usar el convertidor XLS a CSV que le brindaría una mejor interfaz de usuario
Enlace directo: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip
Descomprima el archivo .HTA.
Haga doble clic en el archivo .HTA
Ubique la carpeta donde tiene su archivo xls
seleccione el esquema de nomenclatura csv y haga clic en iniciar conversión que convertirá todos los archivos xls de la carpeta a archivos csv
Si su carpeta tiene 3 archivos xls con 3 hojas, entonces crearía 9 archivos csv para cada una de las hojas y puede identificar el archivo csv con un esquema de nomenclatura csv
¡Espero que esto ayude!
fuente
Aquí hay un script de python getsheets.py ( espejo ), debe instalar
pandas
yxlrd
antes de usarlo.Ejecuta esto:
¿Cómo funciona?
Convierte a varios xlsx:
Convierte a varios csv:
fuente
pip3 install openpyxl click
... y luego me metoImportError: cannot import name 'get_column_letter'
en la línea 513 de pandas excel.py; Supongo que mi instalación de pandas está rota de alguna manera.Una macro de ExtendOffice para guardar las pestañas en su carpeta Documentos:
fuente