📄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

CSV ist nur Text – ohne Angabe von Trennzeichen oder Zeichensatz. Stelle Schreiber und Leser ein und beobachte, was ankommt.
✍️ Schreiber (Export)
Trennzeichen
Zahlen
Kodierung
📥 Leser (Import)
Erwartetes Trennzeichen (deutsches Excel: Listentrennzeichen „;“)
Kodierung
Datei als Text
Artikel,Größe,Preis in €
Käse,groß,4.99
"Brot ""hell""",mittel,2.49
Pfeffer; gemahlen,klein,12.8
Die ersten Bytes
0000417274696B656C2C4772C3B6C39F652C
0010507265697320696E20E282AC0D0A4BC3
0020A473652C67726FC39F2C342E39390D0A
So kommt es an (gelesen als Windows-1252)
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 (ö → „ö“, € → „€“).
➗Trennzeichen
Excel nimmt beim Öffnen das Listentrennzeichen der Windows-Regionseinstellungen – in Deutschland das Semikolon, weil das Komma schon Dezimaltrennzeichen ist.
❝Anführungszeichen
RFC 4180: Felder mit Trennzeichen, Zeilenumbruch oder " kommen in Anführungszeichen; ein " im Feld wird verdoppelt.
🏷️BOM
EF BB BF am Anfang markiert UTF-8. Excel speichert als „CSV UTF-8“ mit BOM und erkennt die Kodierung beim Öffnen daran.
⚠️ Excel „errät“ Typen
Beim Öffnen einer CSV wandelt Excel Werte um: „1.10“ kann zum Datum 01. Okt. werden, führende Nullen („00123“) verschwinden, lange Ziffernfolgen wie Artikelnummern erscheinen in Exponentialschreibweise. Sicher geht es über den Import (Daten → Aus Text/CSV) mit festgelegten Spaltentypen.

📚 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>
📄Eine einzige XML-Datei
Kein ZIP, keine Beziehungen: Arbeitsmappe, Blätter, Zeilen und Zellen stehen verschachtelt in einer Datei. Eingeführt mit Excel 2002, später „XML Spreadsheet 2003“ genannt.
🧮Formeln in R1C1
=RC[-2]*RC[-1] heißt „diese Zeile, zwei Spalten links × eine Spalte links“ – also =B2*C2.
🕰️Heute
Excel öffnet und speichert das Format noch, aber ohne Diagramme, Bilder und VBA. Die Verarbeitungsanweisung <?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>
🌍Offener ISO-Standard
OASIS OpenDocument (ISO/IEC 26300), Standardformat von LibreOffice Calc; Excel kann .ods öffnen und speichern.
👁️Wert und Anzeige
Jede Zelle trägt den Wert (office:value="4.99") und zusätzlich den angezeigten Text (<text:p>4,99).
🔁Wiederholungen
Leere Zellen werden mit 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

FormatEndungContainerInhaltMax. Zeilen × SpaltenMakrosMagic BytesMIME-Typ
BIFF2–BIFF4.xlskeiner (loser Record-Strom)binäre Records16 384 × 256XLM-Makroblätter (ab 4.0)09 00 / 09 02 / 09 04application/vnd.ms-excel
BIFF5.xlsCompound File, Stream „Book“binäre Records, Codepage-Texte16 384 × 256VBA-StorageD0 CF 11 E0 A1 B1 1A E1application/vnd.ms-excel
BIFF8.xlsCompound File, Stream „Workbook“binäre Records, UTF-16, SST65 536 × 256VBA-Storage „_VBA_PROJECT_CUR“D0 CF 11 E0 A1 B1 1A E1application/vnd.ms-excel
XML 2003.xmlkeinereine XML-Datei (SpreadsheetML 2003)65 536 × 256nein<?xmlapplication/xml
Office Open XML.xlsxZIP (OPC)XML-Teile1 048 576 × 16 384nein – Makros lassen sich darin nicht speichern50 4B 03 04application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
OOXML mit Makros.xlsmZIP (OPC)XML + xl/vbaProject.bin (CFB)1 048 576 × 16 384ja50 4B 03 04application/vnd.ms-excel.sheet.macroEnabled.12
Binär-Arbeitsmappe.xlsbZIP (OPC)BIFF12-Records (.bin-Teile)1 048 576 × 16 384ja (möglich)50 4B 03 04application/vnd.ms-excel.sheet.binary.macroEnabled.12
Vorlage.xltxZIP (OPC)XML-Teile1 048 576 × 16 384nein (.xltm: ja)50 4B 03 04application/vnd.openxmlformats-officedocument.spreadsheetml.template
OpenDocument.odsZIP mit „mimetype“ zuerstcontent.xml (ODF)anwendungsabhängigBasic-Makros möglich50 4B 03 04 … mimetypeapplication/vnd.oasis.opendocument.spreadsheet
CSV.csvkeinerText, nur Werte (keine Formate/Formeln)Excel lädt max. 1 048 576 Zeilenneinkeine (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“.