XLS a CSV

Convertir XLS a CSV en Excel: cómo hacerlo paso a paso

noviembre 2, 2026 Tuto Excel 14 min read
Convertir XLS a CSV en Excel: cómo hacerlo paso a paso

Un XLS o XLSX se convierte a CSV cuando hay que sacar sus datos de Excel para llevarlos a una base de datos, a un script o a otra aplicación que no entiende el formato de Excel. Al guardar como CSV, el archivo resultante es solo texto plano con los valores de una hoja, sin fórmulas, sin formatos y sin el resto de hojas. Al terminar el tutorial sabrás hacerlo con Guardar como, con una macro que exporta todas las hojas de golpe, con PowerShell para una carpeta entera, con Python (pandas y openpyxl) y con Node.js (SheetJS y ExcelJS). Funciona en Microsoft 365, Excel 2024, 2021, 2019 y 2016; el camino de Power Query para volver a abrirlo también está en estas versiones.

Qué es un CSV y por qué exportar a CSV desde Excel

Un CSV (Comma-Separated Values) es un archivo de texto plano donde cada línea es una fila y los campos se separan con comas. Lo entiende casi cualquier programa: bases de datos como MySQL o PostgreSQL, scripts en Python y Node.js, hojas de cálculo distintas de Excel y muchas herramientas de importación.

Imagina una hoja de cálculo de Ventas 2026 con tres hojas (Enero, Febrero y Marzo) que necesitas cargar en una base de datos. El CSV guarda únicamente los valores tal como se ven en pantalla, de UNA sola hoja; las fórmulas =B2*C2 se convierten en el número resultante, y los formatos (colores, moneda, negrita) desaparecen. Esa es su ventaja y a la vez su limitación: portable, pero mínimo.

Nota: En Excel configurado con separador decimal de punto (México, Estados Unidos) el delimitador de argumentos en las fórmulas es la coma en lugar del punto y coma.

Las cuatro formas de pasar de XLS o XLSX a CSV

  • Guardar como CSV desde Excel. Para una hoja concreta, con un clic; el archivo pasa a .csv en la carpeta que elijas.
  • Guardar una hoja concreta con macro. Recorre todas las hojas del libro y crea un .csv por hoja con el nombre de la pestaña.
  • PowerShell y Excel por línea de comandos. Para una carpeta con varios libros: abre cada uno, guarda cada hoja como CSV y cierra sin abrir ventanas.
  • Python o Node.js. Para procesos largos o automatizados; pandas, openpyxl, SheetJS y ExcelJS leen el .xlsx y escriben cada hoja como .csv.

Cada una resuelve un caso distinto. Si solo exportas una hoja, basta Guardar como; si son varias, macro o script; si son muchos archivos, PowerShell o Python.

Guardar como CSV desde Excel con un clic

  1. Abre el libro Ventas.xlsx y quédate en la hoja que quieres exportar, por ejemplo Enero.
  2. Pulsa F12 o ve a Archivo > Guardar como.
  3. Elige la carpeta de destino y abre la lista de Tipo.
  4. Selecciona CSV (delimitado por comas) (*.csv) y pulsa Guardar.
  5. Verás dos avisos: «Solo puede guardar la hoja activa. ¿Desea guardarla?» y «Guardar como CSV puede contener características no compatibles…». Pulsa Aceptar y luego Sí.
  6. El archivo se queda junto al original, pero ahora como Enero.csv (si escribes otro nombre, ese).
ArchivoGuardar comoExaminarTipo: CSV (delimitado por comas) (*.csv)

La extensión pasa de .xlsx a .csv porque el filtro del cuadro Guardar como añade la extensión por ti. Si el libro tenía varias hojas, solo se guarda la que está activa en ese momento.

Elegir el delimitador y la codificación al guardar

Al abrir Herramientas > Opciones web dentro de Guardar como puedes fijar UTF-8 (Unicode 65001) para que las tildes y la eñe no se rompan al abrir el .csv en otros programas. Esto es independiente del formato; el delimitador lo decide el tipo elegido (CSV usa coma por defecto en la versión en español).

Nota: Guardar como en Excel usa la coma como delimitador aunque el sistema esté en español. En español el decimal es la coma y el separador de listas es el punto y coma, pero el .csv de Excel va con coma. Si lo necesitas con punto y coma, guárdalo con otro programa o ábrelo y reemplaza la coma.

Lo que se pierde al guardar como CSV

Elemento ¿Se guarda? Dónde se queda
Valores tal como se ven Sí Cada celda
Cabeceras Sí Primera fila
Fórmulas No, se sustituyen por su último valor calculado —
Formatos (colores, moneda, negrita) No —
Gráficos, imágenes, validaciones, tablas dinámicas No —
Hojas que no sean la activa No Solo la hoja visible
Anchos de columna Opcional Solo si se elige en Herramientas > Opciones web > General > «Guardar siempre copia en formato…»

Exportar una hoja concreta a CSV con una macro

La macro ExportarHojasCSV recorre todas las hojas del libro activo y guarda cada una como un .csv con el nombre de la pestaña, en la carpeta Documentos del usuario. Útil cuando tu libro Ventas.xlsx tiene Enero, Febrero y Marzo y necesitas los tres en archivos separados.

La macro lista para copiar y pegar

Sub ExportarHojasCSV()
    Dim ws As Worksheet
    Dim ruta As String
    Dim hojaInicial As Worksheet

    Set hojaInicial = ActiveSheet
    ruta = Environ("USERPROFILE") & "\Documents\"

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        ActiveWorkbook.SaveAs _
            Filename:=ruta & ws.Name & ".csv", _
            FileFormat:=xlCSV, _
            CreateBackup:=False
    Next ws

    hojaInicial.Activate
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "Archivos CSV guardados en: " & ruta
End Sub

Para usarla: Alt+F11 abre el editor VBA, Insertar > Módulo, pegas el código y F5 para ejecutar. Cada hoja queda como Enero.csv, Febrero.csv y Marzo.csv en Documentos.

Cuidado: Application.DisplayAlerts = False evita los avisos de Guardar como. Acuérdate de volverlo a poner en True al terminar, si no, también los desactiva en futuras operaciones.

Archivos CSV guardados en: C:\Users\tu_usuario\Documents\
Comprueba: En Documentos aparecen tres archivos con el nombre de cada hoja y extensión .csv. Si solo se crea uno, revisa que For Each ws recorra el ThisWorkbook y no otro libro.

El archivo que Excel pregunta guardar en XLSX otra vez

Tras ejecutar la macro, Excel pide el libro como .xlsx para no perder las otras hojas. Pasos para silenciarlo:

  1. Pulsa Cancelar en el aviso (NO guardes todavía).
  2. En el editor VBA (Alt+F11), justo antes del End Sub, añade la línea ThisWorkbook.Save o usa Application.DisplayAlerts = False (ya está en la macro de arriba).
  3. Si prefieres conservarlo, ejecuta la macro y luego Archivo > Guardar Ventas.xlsx a mano antes de cerrar.

La desactivación de avisos funciona porque SaveAs con FileFormat:=xlCSV no pregunta nada, y la línea Application.DisplayAlerts = True los reactiva al final. Por eso la macro cierra siempre con esa línea encendida.

Convertir varios XLS a CSV de una vez con PowerShell y Excel

Tienes una carpeta C:\Informes\ con enero.xlsx, febrero.xlsx y marzo.xlsx, y necesitas el .csv de cada hoja sin abrir Excel a mano. Un script de PowerShell lo hace leyendo la carpeta, abriendo cada libro y guardando cada hoja como .csv.

El script de PowerShell que recorre la carpeta

  1. Crea una carpeta C:\SalidaCSV\ para los CSV resultantes.
  2. Pulsa Win+R, escribe powershell y pulsa Intro.
  3. Copia y pega el siguiente bloque:

$carpeta = "C:\Informes"
$salida  = "C:\SalidaCSV"

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false

Get-ChildItem -Path $carpeta -Filter *.xlsx | ForEach-Object {
    $libro = $excel.Workbooks.Open($_.FullName)
    foreach ($hoja in $libro.Worksheets) {
        $hoja.Activate()
        $libro.SaveAs("$salida\$($_.BaseName)_$($hoja.Name).csv", 6)
    }
    $libro.Close($false)
}

$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Write-Host "Proceso terminado. Revisa $salida"
  1. Pulsa Intro y espera. Verás los CSV en C:\SalidaCSV\ con el patrón enero_Enero.csv, febrero_Febrero.csv, etc.

Proceso terminado. Revisa C:\SalidaCSV
Nota: PowerShell con Excel necesita Excel instalado en el equipo. En un servidor sin Excel, usa Total Excel Converter por línea de comandos con el parámetro -sheet, o un script en Python con pandas.

Cuándo conviene un script así y cuándo no

Vale la pena con archivos sueltos y pocos (menos de cincuenta) y sin fórmulas complejas. Con muchos archivos o archivos grandes, Total Excel Converter es más estable y no abre una instancia de Excel por libro. Python con pandas (pd.read_excel + df.to_csv) aguanta mejor volúmenes grandes y se puede paralelizar. Evita PowerShell con Excel si el servidor es de producción: cada Workbooks.Open deja un proceso colgado si se corta el script.

Pasar de XLSX a CSV con Python (pandas y openpyxl)

Instala pandas y openpyxl y convierte Ventas.xlsx a un .csv por hoja, conservando los acentos con UTF-8 con BOM.

  1. Abre una terminal y ejecuta pip install pandas openpyxl.
  2. Crea un archivo a_csv.py con el bloque siguiente.
  3. Ejecuta python a_csv.py.

import pandas as pd

origen = "ventas.xlsx"
hojas = pd.read_excel(origen, sheet_name=None)

for nombre, df in hojas.items():
    df.to_csv(f"{nombre}.csv", index=False, encoding="utf-8-sig")
    print(f"{nombre}.csv -> {len(df)} filas")

Enero.csv -> 4 filas
Febrero.csv -> 4 filas
Marzo.csv -> 4 filas

pd.read_excel(origen, sheet_name=None) devuelve un diccionario {nombre_hoja: DataFrame}. El bucle for nombre, df in hojas.items() itera por cada hoja y la guarda con df.to_csv(...). index=False evita la columna extra del índice; encoding="utf-8-sig" añade el BOM para que Excel lea bien las tildes al volver a abrirlo.

Leer varias hojas en un solo dataframe

import pandas as pd

df = pd.read_excel("ventas.xlsx", sheet_name="Enero")
total = df["Cantidad"].sum()
df.to_csv("enero_con_total.csv", index=False, encoding="utf-8-sig")

Aquí sheet_name="Enero" carga una hoja sola como un DataFrame; df["Cantidad"].sum() calcula el total y to_csv lo exporta. Para unir todas las hojas en una sola tabla, añade una columna con el nombre y concatena con pd.concat(list(hojas.values()), keys=list(hojas.keys())).

UTF-8 con BOM para que Excel lea bien el CSV

Al reimportar el .csv desde Datos > Obtener y transformar datos > Desde el texto/CSV, marca 65001: Unicode (UTF-8) en Origen del archivo. Si el CSV se guardó con encoding="utf-8" SIN BOM, Excel lo lee como Windows-1252 y muestra «María» como «María».

Nota: Un CSV guardado con encoding="utf-8" sin BOM muestra mal las tildes al abrirlo en Excel español. utf-8-sig es la forma sencilla de evitarlo sin tocar la configuración regional del sistema.

Pasar de XLSX a CSV con Node.js (SheetJS y ExcelJS)

Con Node.js instalado, instala SheetJS desde su CDN oficial (no desde el registro de npm, donde está desactualizado) y crea un script que lea cada hoja y la escriba como .csv.

  1. En la carpeta del proyecto ejecuta npm init -y y luego npm i --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz.
  2. Crea a_csv.js con el código siguiente.
  3. Ejecuta node a_csv.js.

const XLSX = require("xlsx");
const fs = require("fs");

const libro = XLSX.readFile("ventas.xlsx");

for (const nombre of libro.SheetNames) {
    const csv = XLSX.utils.sheet_to_csv(libro.Sheets[nombre]);
    fs.writeFileSync(`${nombre}.csv`, csv, "utf-8");
    console.log(`${nombre}.csv -> ${csv.split("\n").length - 1} filas`);
}

Enero.csv -> 4 filas
Febrero.csv -> 4 filas
Marzo.csv -> 4 filas

Con ExcelJS el camino es parecido pero con un bucle sobre workbook.worksheets y worksheet.getRow(i).values para serializar hoja a hoja antes de escribir. SheetJS calcula el separador según los datos; ExcelJS conserva los estilos si los necesitas en el .xlsx de salida.

Por qué el CSV sale vacío, con celdas unidas o con tildes rotas

Tres tropiezos típicos al guardar como CSV en Excel: la hoja activa no era la que esperabas, celdas combinadas que dejan huecos y tildes que se ven mal en el programa de destino.

La hoja activa no es la que querías exportar

A1fx**Producto**
A B C
1 Producto Precio Cantidad
2 Lapiz 1,50 10
3 Cuaderno 3,20 5
4 Goma 0,80 12
Enero

El libro tiene tres pestañas (Enero, Febrero y Marzo) y solo se guardó Enero aunque querías Marzo. Causa: el cursor estaba en Enero cuando pulsaste F12. Arreglo: clic en la pestaña de la hoja que quieres y vuelve a Guardar como. En la macro VBA, la línea ws.Activate justo antes de SaveAs asegura que la hoja correcta queda como activa antes de escribir el archivo.

Las celdas combinadas dejan huecos en el CSV

A2fx*(vacío)*
A B
1 Cliente Importe
2 *(vacío)* 120,00
3 *(vacío)* 85,00
4 Garbarino 50,00
Enero

La cabecera «Cliente» estaba en A1 y A2 combinadas con Combinar y centrar. Al guardar, solo A1 tiene «Cliente»; A2 queda en blanco. Causa: el CSV no soporta combinación de celdas. Arreglo: desactiva Combinar y centrar en Inicio > Alineación > Combinar y centrar, escribe «Cliente» en todas las celdas o usa una macro que copie el valor de A1 en A2 y siguientes antes de guardar.

Las tildes y la eñe se ven mal al abrir el CSV en otro programa

El CSV se guardó en codificación del sistema (Windows-1252) y la app destino espera UTF-8. Resultado: «María» aparece como «María». Tres arreglos, según el camino elegido:

  • En Excel, abre Herramientas > Opciones web dentro de Guardar como y elige 65001 (UTF-8).
  • En pandas, usa encoding="utf-8-sig" en df.to_csv(...).
  • En SheetJS, pasa la opción { bookType: "csv", FS: "," } y codifica el archivo como UTF-8 al escribirlo, o usa la librería xlsx con codepage: 65001.

El CSV se abre y aparece todo en una columna

Doble clic sobre el .csv abre Excel con el separador de la región (punto y coma en español) y el archivo trae comas; todas las celdas quedan en la columna A. Arreglo: Datos > Obtener y transformar datos > Desde el texto/CSV, elige coma como delimitador y UTF-8 como origen. La vista previa mostrará las columnas separadas antes de cargarlo; entonces Cerrar y cargar > Solo crear conexión si no quieres duplicar la hoja.

Lo que ya sabes hacer con XLS y CSV, y el siguiente paso

  • Guardar como CSV sirve para una hoja concreta, con un clic y sin código.
  • Una macro VBA exporta todas las hojas del libro como un .csv por hoja, manteniendo el nombre de cada pestaña.
  • Python (pandas) y Node.js (SheetJS o ExcelJS) automatizan procesos largos y dejan un script reutilizable cada vez que llegan nuevos archivos.
  • Power Query abre el CSV con el delimitador y la codificación correctos, el camino de vuelta al libro original.

El siguiente paso natural es importar el CSV otra vez con Datos > Obtener y transformar datos > Desde el texto/CSV, eligiendo coma como delimitador y 65001 (UTF-8) como origen del archivo; así dejas el .csv como una tabla lista para analizar, sin las columnas pegadas en una sola ni las tildes rotas.

Dudas al convertir un Excel a CSV

1. ¿Cómo pasar un Excel a CSV gratis?

Desde el propio Excel no hace falta pagar nada: abre el archivo, ve a Archivo > Guardar como, elige la carpeta de destino y en Tipo despliega la lista hasta «CSV (separado por comas) (*.csv)». Pulsa Guardar y, si Excel te avisa de que el formato no admite algunas características, acepta; el libro se convierte sin coste ni instalación adicional.

2. ¿Cómo guardar un Excel en CSV con codificación UTF-8?

El «Guardar como» de Excel no ofrece UTF-8 entre sus opciones, así que el camino más fiable es guardar primero como CSV normal (Archivo > Guardar como > CSV) y luego abrir el archivo resultante en el Bloc de notas de Windows. Usa Archivo > Guardar como dentro del Bloc de notas, elige «Todos los archivos» en Tipo y en Codificación selecciona «UTF-8» antes de Guardar; así el archivo final queda en UTF-8 sin caracteres raros.

3. ¿Cómo guardar un Excel como CSV separado por comas?

En el libro abierto pulsa Archivo > Guardar como, escoge la carpeta y abre la lista Tipo; ahí aparece «CSV (separado por comas) (*.csv)», selecciónalo y pulsa Guardar. Si Excel pregunta si quieres mantener el formato CSV, di que Sí: el archivo se guardará con cada columna separada por una coma y cada fila en una línea nueva.

4. ¿Cómo pasar un Excel a CSV desde una página web?

Sí se puede, aunque perderás formatos y fórmulas porque el CSV solo guarda texto. Sube el archivo a un conversor online de confianza, elige pasar de XLS/XLSX a CSV, descarga el resultado y comprueba la codificación y el separador antes de abrirlo en otro programa. Para datos sensibles o con fórmulas que necesitas conservar, mejor hazlo desde el propio Excel con Archivo > Guardar como > CSV.

5. ¿Cómo guardar un archivo como CSV delimitado por comas?

En Excel, abrir el libro y elegir Archivo > Guardar como; en el campo Tipo seleccionar «CSV (separado por comas) (*.csv)» y pulsar Guardar. Excel usará la coma como delimitador de columnas y el salto de línea para separar las filas, así que el archivo se podrá abrir tal cual en Access, Bloc de notas o cualquier editor que espere ese formato.

Fuentes

  1. MicrosoftFormatos de archivo de Excel — documentación oficialconsultado el 12/10/2026
  2. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 12/10/2026
  3. MicrosoftImportar un archivo de texto o CSV — documentación oficialconsultado el 12/10/2026
  4. SheetjsExcel con Node.js (ExcelJS y SheetJS) — documentación oficialconsultado el 12/10/2026