📄CSV · XML 2003 · ODS
Neben .xls und .xlsx begegnen einem drei weitere Tabellenformate ständig – vom einfachsten (CSV) bis zum offenen Standard (OpenDocument).
🧪CSV-Labor: Trennzeichen, Dezimalkomma, Kodierung
Artikel,Größe,Preis in € Käse,groß,4.99 "Brot ""hell""",mittel,2.49 Pfeffer; gemahlen,klein,12.8
| Artikel,Größe,Preis in € | |
| Käse,groß,4.99 | |
| Brot "hell",mittel,2.49 | |
| Pfeffer | gemahlen,klein,12.8 |
- ✗ Umlautsalat: UTF-8-Bytes wurden als Windows-1252 gelesen (ö → „ö“, € → „€“).
" kommen in Anführungszeichen; ein " im Feld wird verdoppelt.EF BB BF am Anfang markiert UTF-8. Excel speichert als „CSV UTF-8“ mit BOM und erkennt die Kodierung beim Öffnen daran.📚 Quelle: RFC 4180 „Common Format and MIME Type for CSV Files“; Microsoft Support „Open UTF-8 CSV files in Excel“ / „Import or export text files“; Unicode FAQ zur BOM.
🧾XML-Kalkulationstabelle 2003 (SpreadsheetML 2003)
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<Worksheet ss:Name="Umsatz">
<Table>
<Row>
<Cell><Data ss:Type="String">Artikel</Data></Cell>
<Cell><Data ss:Type="String">Preis</Data></Cell>
<Cell><Data ss:Type="String">Menge</Data></Cell>
<Cell><Data ss:Type="String">Summe</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Käse</Data></Cell>
<Cell><Data ss:Type="Number">4.99</Data></Cell>
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell ss:Formula="=RC[-2]*RC[-1]"><Data ss:Type="Number">9.98</Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>=RC[-2]*RC[-1] heißt „diese Zeile, zwei Spalten links × eine Spalte links“ – also =B2*C2.<?mso-application?> lässt Windows die Datei Excel zuordnen.📚 Quelle: Microsoft „XML Spreadsheet Reference“ (Office 2002/2003, Namensraum urn:schemas-microsoft-com:office:spreadsheet).
🟦OpenDocument-Tabelle (.ods)
umsatz.ods (ZIP)
├─ mimetype ← erster Eintrag, unkomprimiert:
│ application/vnd.oasis.opendocument.spreadsheet
├─ META-INF/manifest.xml ← Liste aller Teile
├─ content.xml ← Tabellen und Zellen
├─ styles.xml, meta.xml, settings.xml
└─ Thumbnails/thumbnail.png
content.xml (Ausschnitt, wie LibreOffice ihn schreibt):
<table:table table:name="Umsatz">
<table:table-row>
<table:table-cell office:value-type="string"><text:p>Käse</text:p></table:table-cell>
<table:table-cell office:value-type="float" office:value="4.99"><text:p>4,99</text:p></table:table-cell>
<table:table-cell office:value-type="float" office:value="2"><text:p>2</text:p></table:table-cell>
<table:table-cell table:formula="of:=[.B2]*[.C2]"
office:value-type="float" office:value="9.98"><text:p>9,98</text:p></table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
</table:table>office:value="4.99") und zusätzlich den angezeigten Text (<text:p>4,99).table:number-columns-repeated zusammengefasst – 4 + 16 380 = 16 384 Spalten.📚 Quelle: OASIS OpenDocument 1.2/1.3 Teil 1 (table:table-cell, office:value-type), Teil 3 (Paket, mimetype); Ausschnitt aus einer mit LibreOffice erzeugten .ods.
⚖️Alle Formate im Vergleich
| Format | Endung | Container | Inhalt | Max. Zeilen × Spalten | Makros | Magic Bytes | MIME-Typ |
|---|---|---|---|---|---|---|---|
| BIFF2–BIFF4 | .xls | keiner (loser Record-Strom) | binäre Records | 16 384 × 256 | XLM-Makroblätter (ab 4.0) | 09 00 / 09 02 / 09 04 | application/vnd.ms-excel |
| BIFF5 | .xls | Compound File, Stream „Book“ | binäre Records, Codepage-Texte | 16 384 × 256 | VBA-Storage | D0 CF 11 E0 A1 B1 1A E1 | application/vnd.ms-excel |
| BIFF8 | .xls | Compound File, Stream „Workbook“ | binäre Records, UTF-16, SST | 65 536 × 256 | VBA-Storage „_VBA_PROJECT_CUR“ | D0 CF 11 E0 A1 B1 1A E1 | application/vnd.ms-excel |
| XML 2003 | .xml | keiner | eine XML-Datei (SpreadsheetML 2003) | 65 536 × 256 | nein | <?xml | application/xml |
| Office Open XML | .xlsx | ZIP (OPC) | XML-Teile | 1 048 576 × 16 384 | nein – Makros lassen sich darin nicht speichern | 50 4B 03 04 | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| OOXML mit Makros | .xlsm | ZIP (OPC) | XML + xl/vbaProject.bin (CFB) | 1 048 576 × 16 384 | ja | 50 4B 03 04 | application/vnd.ms-excel.sheet.macroEnabled.12 |
| Binär-Arbeitsmappe | .xlsb | ZIP (OPC) | BIFF12-Records (.bin-Teile) | 1 048 576 × 16 384 | ja (möglich) | 50 4B 03 04 | application/vnd.ms-excel.sheet.binary.macroEnabled.12 |
| Vorlage | .xltx | ZIP (OPC) | XML-Teile | 1 048 576 × 16 384 | nein (.xltm: ja) | 50 4B 03 04 | application/vnd.openxmlformats-officedocument.spreadsheetml.template |
| OpenDocument | .ods | ZIP mit „mimetype“ zuerst | content.xml (ODF) | anwendungsabhängig | Basic-Makros möglich | 50 4B 03 04 … mimetype | application/vnd.oasis.opendocument.spreadsheet |
| CSV | .csv | keiner | Text, nur Werte (keine Formate/Formeln) | Excel lädt max. 1 048 576 Zeilen | nein | keine (evtl. BOM EF BB BF) | text/csv |
Tabelle ist auf dem Handy seitlich verschiebbar.
📚 Quelle: [MS-XLS], [MS-XLSB], ECMA-376, OASIS ODF, RFC 4180, IANA Media Types, Microsoft Support „Excel specifications and limits“.