So wandeln Sie eine Excel-Datei in Base64 um
- Legen Sie eine
.xlsx-,.xls- oder.csv-Datei auf dem Feld ab oder wählen Sie sie über die Dateiauswahl. - Ausgabe als steht zunächst auf Reines Base64. Wählen Sie JSON, um Dateiname, MIME-Typ und Größe mitzuliefern.
- Ausgabe kopieren, oder bei großen Arbeitsmappen Als .txt speichern.
Welche Tabellendatei ist es?
| Datei | Base64 beginnt mit | MIME-Typ |
|---|---|---|
.xlsx, .xlsm | UEsDB (ZIP) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xls | 0M8R4KGxGuE (OLE2) | application/vnd.ms-excel |
passwortgeschützte .xlsx | 0M8R4KGxGuE | wie .xlsx |
.csv, UTF-8 mit BOM | 77u/ | text/csv |
.csv, ohne BOM | der Text selbst, z. B. bmFtZSxxdHkK für name,qty mit Zeilenumbruch | text/csv |
Die Ausgaben als Data-URI und JSON verwenden den Typ, den Ihr Browser meldet. Auf Windows-Rechnern mit installiertem Excel kennzeichnet das System .csv-Dateien oft als application/vnd.ms-excel. Ist eine API bei CSV streng, ändern Sie den Typ von Hand auf text/csv.
CSV ist einfach Text
Eine CSV-Datei ist reiner Text, ihr Base64 ergibt beim Dekodieren also lesbare Zeilen. Daraus folgt einiges:
- Die Zeichenkodierung reist mit den Bytes. Eine CSV, die Excel in einer alten Codepage wie Windows-1252 gespeichert hat, ergibt falsche Zeichen, wenn der Empfänger UTF-8 annimmt. Speichern Sie lieber als „CSV UTF-8“.
- Eine große CSV schrumpft mit gzip oder ZIP deutlich. Das lohnt sich vor dem Kodieren, wenn die API komprimierte Uploads annimmt. Eine
.xlsxist bereits ein ZIP, erneutes Komprimieren spart also fast nichts. - Um eine als Base64 erhaltene CSV schnell anzusehen, dekodiert Base64 in CSV sie und zeigt sie als Text.
Wo Tabellen als Base64 unterwegs sind
- Report- und Import-APIs, die eine Arbeitsmappe im JSON-Body annehmen, etwa für Massenimporte von Produkten oder Preisen.
- Automatisierungsplattformen, die Dateien als Base64-Zeichenketten zwischen Schritten weiterreichen, zum Beispiel um einen E-Mail-Anhang zu lesen und in einen Speicher hochzuladen.
- APIs für den E-Mail-Versand, bei denen eine Tabelle als Anhang in Base64 in einem JSON-Feld steckt.
- Download-Links in generiertem HTML über die Ausgabe HTML
<a download>, damit eine Report-Seite ihre eigene.xlsxmitbringt.
Kodieren und das Format prüfen in 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
Eine solche Prüfung fängt einen typischen Upload-Fehler ab: eine „Tabelle“, die in Wirklichkeit eine HTML-Fehlerseite ist, oder eine alte .xls, die in .xlsx umbenannt wurde. Mehr zu Dateien unter Base64 in Python, und Base64 in Excel zeigt eine Base64-Arbeitsmappe in der Vorschau und speichert sie als Datei.
Häufige Fragen
Welchen MIME-Typ hat eine XLSX-Datei?
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. Das alte .xls-Format verwendet application/vnd.ms-excel, CSV ist text/csv.
Warum beginnt das Base64 meiner CSV-Datei mit 77u/?
77u/ ist die UTF-8-Byte-Order-Mark (EF BB BF). Excel fügt sie ein, wenn Sie als „CSV UTF-8“ speichern. Die meisten Parser kommen damit zurecht, manche halten sie aber für einen Teil des ersten Spaltennamens. Entfernen Sie sie, wenn ein Header wie name plötzlich nicht mehr erkannt wird.
Kann ich eine Excel-Datei in einem JSON-Request senden?
Ja. Kodieren Sie sie als reines Base64 und setzen Sie es in das Feld für den Dateiinhalt, das Ihre API dokumentiert, zusammen mit Dateiname und MIME-Typ. Die Ausgabe JSON zeigt die Struktur: name, type, size und data.