Subir un archivo
  1. base64hub
  2. Herramientas de archivos
  3. Excel a Base64

Excel a Base64

Suelta un archivo .xlsx, .xls o .csv y copia su Base64 o un objeto JSON con nombre, tipo y tamaño. Útil para API de informes, plataformas de automatización y adjuntos enviados por JSON.

Gratis sin registro, sin límites Local no se sube nada Actualizado 27 oct 2026
Suelta archivos aquí, pégalos o selecciónalos
Entrada –Salida –Tamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo convertir un archivo de Excel a Base64

  1. Suelta un archivo .xlsx, .xls o .csv en el recuadro, o elígelo con el selector de archivos.
  2. Salida como empieza en Base64 simple. Elige JSON para incluir el nombre del archivo, el tipo MIME y el tamaño.
  3. Copiar salida, o Guardar como .txt para libros grandes.

¿Qué hoja de cálculo es?

ArchivoEl Base64 empieza porTipo MIME
.xlsx, .xlsmUEsDB (ZIP)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xls0M8R4KGxGuE (OLE2)application/vnd.ms-excel
.xlsx protegido con contraseña0M8R4KGxGuEel mismo que .xlsx
.csv, UTF-8 con BOM77u/text/csv
.csv, sin BOMel propio texto, p. ej. bmFtZSxxdHkK para name,qty y un salto de líneatext/csv

Las salidas data URI y JSON usan el tipo que informa tu navegador. En equipos Windows con Excel instalado, el sistema suele etiquetar los .csv como application/vnd.ms-excel. Si una API es estricta con el CSV, cambia el tipo a text/csv a mano.

Un CSV no es más que texto

Un archivo CSV es texto plano, así que su Base64 se decodifica en filas legibles. Eso tiene algunas consecuencias:

  • La codificación de caracteres viaja con los bytes. Un CSV que Excel guardó en una página de códigos heredada, como Windows-1252, se decodifica con caracteres erróneos si el receptor asume UTF-8. Al guardar, mejor elige “CSV UTF-8”.
  • Un CSV grande se reduce mucho con gzip o ZIP, y merece la pena comprimirlo antes de codificar si la API acepta subidas comprimidas. Un .xlsx ya es un ZIP, así que volver a comprimirlo apenas ahorra nada.
  • Para echar un vistazo rápido a un CSV que te llegó en Base64, Base64 a CSV lo decodifica y lo muestra como texto.

Dónde viajan las hojas de cálculo como Base64

  • API de informes e importación que aceptan un libro dentro de un cuerpo JSON, por ejemplo para importar productos o precios en bloque.
  • Plataformas de automatización que pasan archivos entre pasos como cadenas Base64, por ejemplo al leer un adjunto de correo y subirlo a un almacenamiento.
  • API de envío de correo, donde un adjunto de hoja de cálculo va en un campo JSON como Base64.
  • Enlaces de descarga en HTML generado, con la salida HTML <a download>, para que una página de informe lleve su propio .xlsx.

Codificar y comprobar el formato en Python

import base64
from pathlib import Path

SIGNATURES = {
    "UEsDB": "xlsx (ZIP)",
    "0M8R4KGxGuE": "xls (OLE2) or encrypted xlsx",
    "77u/": "text with a UTF-8 BOM, e.g. CSV UTF-8",
}

def encode_sheet(path):
    b64 = base64.b64encode(Path(path).read_bytes()).decode("ascii")
    kind = next((v for k, v in SIGNATURES.items() if b64.startswith(k)), "other")
    return b64, kind

Una comprobación así detecta un error de subida habitual: una “hoja de cálculo” que en realidad es una página de error HTML o un .xls antiguo renombrado a .xlsx. Más sobre archivos en Base64 en Python, y Base64 a Excel previsualiza un libro en Base64 y lo guarda como archivo.

Preguntas frecuentes

¿Cuál es el tipo MIME de un archivo XLSX?

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. El formato antiguo .xls usa application/vnd.ms-excel, y CSV es text/csv.

¿Por qué el Base64 de mi CSV empieza por 77u/?

77u/ es la marca de orden de bytes (BOM) de UTF-8 (EF BB BF). Excel la añade cuando guardas como “CSV UTF-8”. La mayoría de los parsers la manejan, pero algunos la toman como parte del nombre de la primera columna, así que quítala si una cabecera como name deja de coincidir.

¿Puedo enviar un archivo de Excel en una petición JSON?

Sí. Codifícalo como Base64 simple y ponlo en el campo de contenido de archivo que indique tu API, junto con el nombre y el tipo MIME. La salida JSON muestra la estructura: name, type, size y data.