Convertir Excel a CSV en modo bulk

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.
👉  ¿Dónde comprar los dominios más baratos?
Menú para abrir el editor de Visual Basic para Excel
Crear módulo de Visual Basic para Excel y ejecutarlo

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

👇Tu comentario