Combinar varios archivos CSV en un solo Excel (hojas separadas)

2026-07-08 06:54:03 zaki zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Combinar múltiples archivos CSV en un libro de Excel

Al trabajar con informes exportados desde diferentes sistemas, es común terminar con docenas de archivos CSV. Por ejemplo, cada departamento, tienda o mes puede generar su propio informe CSV. Si bien esto facilita la recopilación de datos, gestionar una gran cantidad de archivos separados se vuelve inconveniente rápidamente.

Una solución práctica es combinar todos los archivos CSV en un solo libro de Excel, manteniendo cada CSV como una hoja de cálculo separada. Esto preserva la estructura original del archivo, facilita la navegación y le permite compartir un solo libro en lugar de múltiples archivos individuales.

En este artículo, presentaremos tres métodos prácticos, desde un enfoque manual sencillo hasta la automatización de Excel con VBA y una solución totalmente programática en Python.

Métodos cubiertos:

Método 1. Copiar y pegar archivos CSV en hojas de cálculo separadas

Si solo tiene unos pocos archivos CSV para combinar, la solución más sencilla es copiar su contenido en diferentes hojas de cálculo manualmente.

Un detalle importante es que debe abrir cada archivo CSV con Microsoft Excel en lugar de un editor de texto como el Bloc de notas. Cuando un CSV se abre en Excel, sus filas y columnas se analizan correctamente según el delimitador. Si copia el texto directamente desde el Bloc de notas, Excel puede pegar todo en una sola columna en lugar de separar los valores automáticamente.

Copiar y pegar archivos CSV en hojas de cálculo separadas

Pasos

  1. Abra Microsoft Excel y cree un nuevo libro.
  2. Abra el primer archivo CSV usando Excel.
  3. Seleccione todos los datos (Ctrl + A) y cópielos (Ctrl + C).
  4. Regrese al nuevo libro y pegue los datos en la primera hoja de cálculo.
  5. Cambie el nombre de la hoja de cálculo si es necesario.
  6. Repita el proceso para cada archivo CSV restante, creando una nueva hoja de cálculo cada vez.
  7. Guarde el libro como un archivo .xlsx.

Ventajas

  • No requiere programación.
  • Funciona en todas las instalaciones de Excel.
  • Preserva un CSV por hoja de cálculo.
  • Ideal para tareas ocasionales que involucran solo unos pocos archivos.

Desventajas

  • Consume mucho tiempo al procesar muchos archivos.
  • Completamente manual.
  • Es fácil cometer errores al manejar docenas de archivos CSV.

Método 2. Usar una macro de VBA para importar múltiples archivos CSV

Si realiza esta tarea con frecuencia dentro de Excel, una macro de VBA puede automatizar todo el proceso. La macro escanea una carpeta, abre cada archivo CSV, copia su hoja de cálculo en el libro actual y nombra la hoja según el archivo CSV.

Combinar múltiples archivos CSV en Excel usando una macro de VBA

Paso 1. Crear un libro en blanco

Abra Excel y cree un nuevo libro. Este libro se convertirá en el libro de destino que almacena todas las hojas de cálculo importadas.

Paso 2. Abrir el editor de VBA

Presione Alt + F11 para abrir el Editor de Visual Basic.

Elija Insertar > Módulo y luego pegue el siguiente código en el nuevo módulo.

Sub MergeCSVFilesToSheets()

    Dim folderPath As String
    Dim fileName As String
    Dim wbCSV As Workbook
    Dim ws As Worksheet
    Dim targetWb As Workbook
    Dim sheetName As String

    Set targetWb = ThisWorkbook

    folderPath = InputBox("Ingrese la ruta de la carpeta que contiene los archivos CSV:")

    If Right(folderPath, 1) <> "\" Then
        folderPath = folderPath & "\"
    End If

    fileName = Dir(folderPath & "*.csv")

    Application.ScreenUpdating = False

    Do While fileName <> ""

        Workbooks.Open folderPath & fileName
        Set wbCSV = ActiveWorkbook

        sheetName = Left(fileName, InStrRev(fileName, ".") - 1)

        wbCSV.Worksheets(1).Copy After:=targetWb.Sheets(targetWb.Sheets.Count)
        Set ws = targetWb.Sheets(targetWb.Sheets.Count)

        On Error Resume Next
        ws.Name = Left(sheetName, 31)
        On Error GoTo 0

        wbCSV.Close SaveChanges:=False

        fileName = Dir
    Loop

    Application.ScreenUpdating = True

    MsgBox "Los archivos CSV se han combinado correctamente."

End Sub

Paso 3. Ejecutar la macro

Presione F5, ingrese la carpeta que contiene sus archivos CSV y la macro importará automáticamente cada CSV en su propia hoja de cálculo.

Ventajas

  • Mucho más rápido que copiar manualmente.
  • Se ejecuta completamente dentro de Microsoft Excel.
  • Crea automáticamente una hoja de cálculo para cada archivo CSV.
  • Adecuado para usuarios que trabajan regularmente con Excel.

Desventajas

  • Requiere libros habilitados para macros.
  • Los usuarios deben habilitar las macros de VBA.
  • Menos adecuado para la automatización desatendida o del lado del servidor.

Método 3. Combinar múltiples archivos CSV en Python usando Spire.XLS

Para flujos de trabajo recurrentes, trabajos programados o aplicaciones empresariales, la automatización programática suele ser la solución más eficiente.

Muchos desarrolladores piensan inmediatamente en Pandas para el procesamiento de CSV. Pandas es una excelente biblioteca para leer, analizar y transformar datos tabulares. Sin embargo, su enfoque principal es el análisis de datos más que la generación de documentos.

Si su flujo de trabajo va más allá de simplemente importar archivos CSV (por ejemplo, dar formato a hojas de cálculo, aplicar estilos, insertar gráficos, proteger libros o exportar el libro final a PDF), una biblioteca de hojas de cálculo como Free Spire.XLS for Python ofrece una solución más completa.

Primero, instale la biblioteca:

pip install Spire.XLS

Luego, use el siguiente código para combinar cada archivo CSV en una carpeta en un solo libro de Excel, donde cada CSV se convierte en una hoja de cálculo separada.

import os
from spire.xls import Workbook, WorksheetCopyType, FileFormat

input_folder = "input"
output_folder = "output"

# Crear el libro de destino
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()

# Procesar cada archivo CSV
for csv_file in os.listdir(input_folder):
    if csv_file.endswith(".csv"):

        input_path = os.path.join(input_folder, csv_file)

        workbook = Workbook()
        workbook.LoadFromFile(input_path, ",", 1, 1)

        sheet = workbook.Worksheets[0]
        merged_workbook.Worksheets.AddCopy(
            sheet,
            WorksheetCopyType.CopyAll
        )

merged_workbook.SaveToFile(
    os.path.join(output_folder, "Merged.xlsx"),
    FileFormat.Version2013
)

Salida:

Combinar múltiples archivos CSV en un libro de Excel usando Python

En comparación con los métodos manuales o VBA, este enfoque es mucho más fácil de integrar en flujos de trabajo automatizados. Después de generar el libro, puede continuar procesándolo con Spire.XLS, por ejemplo:

  • Aplicar fuentes, colores, bordes y formatos numéricos.
  • Inmovilizar paneles o ajustar el ancho de las columnas automáticamente.
  • Crear gráficos y tablas dinámicas.
  • Proteger hojas de cálculo o el libro.
  • Exportar el libro completado a PDF u otros formatos.

Estas capacidades lo hacen adecuado no solo para combinar CSV, sino también para canales de generación de informes de extremo a extremo.

Comparación de los tres métodos

Método Requiere programación Procesamiento por lotes Mejor para
Copiar y pegar No Limitado Tareas únicas con solo unos pocos archivos CSV
Macro de VBA VBA básico Usuarios de Excel que importan archivos CSV regularmente
Python + Free Spire.XLS Python Excelente Flujos de trabajo automatizados, aplicaciones empresariales y procesamiento por lotes

Conclusión

El mejor método depende de la frecuencia con la que necesite realizar la tarea.

Si solo necesita combinar unos pocos archivos CSV ocasionalmente, copiar y pegar manualmente los datos en hojas de cálculo separadas es la solución más rápida.

Si trabaja principalmente en Excel y realiza esta tarea regularmente, una macro de VBA puede automatizar el proceso con un esfuerzo mínimo.

Para los desarrolladores que crean flujos de trabajo repetibles o integran el procesamiento de CSV en aplicaciones, Python con Spire.XLS ofrece la mayor flexibilidad. Más allá de combinar archivos CSV, permite una manipulación avanzada de hojas de cálculo y la generación de documentos, lo que lo hace adecuado para una amplia gama de escenarios de automatización.

Preguntas frecuentes

¿Puedo combinar cientos de archivos CSV en un solo libro de Excel?

Sí. VBA puede manejar muchos archivos, pero para lotes muy grandes o flujos de trabajo automatizados, una solución en Python es generalmente más confiable y escalable.

¿Cada archivo CSV se convertirá en su propia hoja de cálculo?

Sí. Los tres métodos descritos en este artículo preservan cada CSV como una hoja de cálculo separada en lugar de combinar todos los datos en una sola hoja.

¿Pueden los nombres de las hojas de cálculo basarse en los nombres de los archivos CSV?

Sí. Tanto la macro de VBA como el ejemplo de Python utilizan automáticamente el nombre del archivo CSV (sin la extensión) como nombre de la hoja de cálculo.

¿Qué pasa si mis archivos CSV usan UTF-8 u otras codificaciones?

La mayoría de los archivos CSV se pueden importar sin problemas. Si sus archivos usan una codificación o un delimitador diferente, ajuste la configuración de importación en consecuencia antes de procesarlos.

¿Puedo seguir editando el libro después de combinar los archivos CSV?

Absolutamente. Una vez creado el libro, puede dar formato a las hojas de cálculo, insertar gráficos, agregar fórmulas, proteger el libro o exportarlo a PDF como cualquier otro archivo de Excel.

Ver también