
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
- Método 2. Usar una macro de VBA para importar múltiples archivos CSV
- Método 3. Combinar múltiples archivos CSV en Python usando Spire.XLS
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.

Pasos
- Abra Microsoft Excel y cree un nuevo libro.
- Abra el primer archivo CSV usando Excel.
- Seleccione todos los datos (Ctrl + A) y cópielos (Ctrl + C).
- Regrese al nuevo libro y pegue los datos en la primera hoja de cálculo.
- Cambie el nombre de la hoja de cálculo si es necesario.
- Repita el proceso para cada archivo CSV restante, creando una nueva hoja de cálculo cada vez.
- 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.

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:

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 | Sí | 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.