En este breve artículo te traigo un script para convertir de forma masiva archivos de Excel (.xlsx) en CSV de forma automática.
Desde el programa Excel puedes convertir un archivo con la extensión .xlsx en .csv a través del menú Guardar como. Pero si tienes que convertir una gran cantidad de archivos esta tarea se hace repetitiva y pesada, ya que requiere que realices varias acciones manuales.
Para facilitarte la tarea te dejo un script de Visual Basic que hará el proceso en batch por ti:
Sub WorkbooksSaveAsCsvToFolder()
Dim xObjWB As Workbook
Dim xObjWS As Worksheet
Dim xStrEFPath As String
Dim xStrEFFile As String
Dim xObjFD As FileDialog
Dim xObjSFD As FileDialog
Dim xStrSPath As String
Dim xStrCSVFName As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
On Error Resume Next
Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
xObjFD.AllowMultiSelect = False
xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files"
If xObjFD.Show <> -1 Then Exit Sub
xStrEFPath = xObjFD.SelectedItems(1) & "\"
Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)
xObjSFD.AllowMultiSelect = False
xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV files"
If xObjSFD.Show <> -1 Then Exit Sub
xStrSPath = xObjSFD.SelectedItems(1) & "\"
xStrEFFile = Dir(xStrEFPath & "*.xls*")
Do While xStrEFFile <> ""
Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)
xStrCSVFName = xStrSPath & xStrEFFile & ".csv"
xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSVWindows
xObjWB.Close savechanges:=False
xStrEFFile = Dir
Loop
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Te indico cómo ejecutarlo:
- Abre Excel
- Sitúate en la pestaña Desarrollador
- Haz clic en Visual Basic y se abrirá la ventana Microsoft Visual Basic para Aplicaciones
- Insertar > Módulo
- Copia y pega el código anterior
- Presiona F5 para ejecutar el código
- Selecciona la carpeta donde se encuentran los archivos Excel que quieres convertir
- Selecciona la carpeta de destino donde se copiarán los archivos CSV
- ¡Listo! Los archivos CSV comenzarán a generarse. El cursor del ratón cambiará hasta que finalice el proceso, cuyo tiempo dependerá de la cantidad de archivos y su volumen de datos puede.
Unir varios archivos CSV en uno
Si ya has convertido todos los archivos a CSV quizá ahora quieras unificarlos y generar un único archivo. Esto se puede hacer de forma sencilla mediante la consola de comandos (Windows).
OJO! todos los archivos tiene que tener la misma estructura
copy *.csv archivo-unico.csv