SpreadsheetML

Auszeichnungssprache für Tabellenkalkulation

SpreadsheetML ist eine von Microsoft für Microsoft Excel ab Version 2003 entwickelte XML-basierte Auszeichnungssprache für Tabellenkalkulationsdokumente. SpreadsheetML ist eine Weiterentwicklung des mit Microsoft Excel XP eingeführten, XML-basierten Dateiformats XML Spreadsheet.[1]

Mit der Einführung von SpreadsheetML wird das Erstellen und Verarbeiten von Microsoft Excel-Dateien vereinfacht. Konkurrenzprodukte und Individualsoftware-Applikationen sollen SpreadsheetML-Dokumente erstellen, einlesen und verändern können, ohne auf Microsoft Excel-Funktionen zugreifen zu müssen.[2]

Zurzeit existieren zwei Versionen von SpreadsheetML, die Version 2003 und die Version, die Bestandteil der ISO/IEC-Norm 29500:2008 (Office Open XML) ist.

SpreadsheetML 2003

Bearbeiten

SpreadsheetML 2003-Dokumente werden in einer (1) unkomprimierten XML-Datei gespeichert. Diese Dateien bestehen im Wesentlichen aus vier Teilen:

  • Allgemeine Dokumenteigenschaften (DocumentProperties)
  • Applikationsspezifische Dokumenteigenschaften (WorkBook)
  • Formatvorlagen (Styles)
  • Tabellenblätter (Worksheet)

SpreadsheetML 2003 unterstützt nicht die gesamte Microsoft Excel-Funktionalität, es fehlt unter anderem die Unterstützung von Diagrammen, Grafiken und OLE-Objekten.[3]

Beispiel

Bearbeiten

Anzeige am Bildschirm (die Zelle A3 enthält SUMME der beiden darüberliegenden Zellen):

A
1 1
2 1
3 2

Dateiinhalt (gekürzt):

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:o="urn:schemas-microsoft-com:office:office"
          xmlns:x="urn:schemas-microsoft-com:office:excel"
          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
    <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
        <Author>N.N.</Author>
        <LastAuthor>N.N.</LastAuthor>
        <Created>2006-08-30T12:00:00Z</Created>
        <Company>-</Company>
        <Version>11.8036</Version>
    </DocumentProperties>
    <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
        <WindowHeight>13225</WindowHeight>
        <WindowWidth>19382</WindowWidth>
            </ExcelWorkbook>
    <Styles>
        <Style ss:ID="Default" ss:Name="Normal">
            <Alignment ss:Vertical="Bottom"/>
            <Borders/>
            <Font/>
            <Interior/>
            <NumberFormat/>
            <Protection/>
        </Style>
    </Styles>
    <Worksheet ss:Name="Tabelle1">
        <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="3" x:FullColumns="1"
               x:FullRows="1" ss:DefaultColumnWidth="66.206896551724142"
               ss:DefaultRowHeight="13.241379310344827">
            <Row>
                <Cell>
                    <Data ss:Type="Number">1</Data>
                </Cell>
            </Row>
            <Row>
                <Cell>
                    <Data ss:Type="Number">1</Data>
                </Cell>
            </Row>
            <Row>
                <Cell ss:Formula="=SUM(R[-2]C:R[-1]C)">
                    <Data ss:Type="Number">2</Data>
                </Cell>
            </Row>
        </Table>
        <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
            <PageSetup>
                <Header x:Margin="0.4921259845"/>
                <Footer x:Margin="0.4921259845"/>
                <PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
                             x:Right="0.78740157499999996" x:Top="0.984251969"/>
            </PageSetup>
            <Selected/>
            <Panes>
                <Pane>
                    <Number>3</Number>
                    <ActiveRow>3</ActiveRow>
                </Pane>
            </Panes>
            <ProtectObjects>False</ProtectObjects>
            <ProtectScenarios>False</ProtectScenarios>
        </WorksheetOptions>
    </Worksheet>
    <Worksheet ss:Name="Tabelle2">
            </Worksheet>
    <Worksheet ss:Name="Tabelle3">
            </Worksheet>
</Workbook>

Standardisierung und Lizenzierung

Bearbeiten

SpreadsheetML 2003 wurde von keiner Normungsorganisation standardisiert, ist also kein herstellerunabhängiger Standard.

Eine vollständige Dokumentation ist öffentlich verfügbar.[4]

Microsoft gewährt eine immerwährende, gebührenfreie Lizenz zur Verwendung von SpreadsheetML.[5] In einem covenant not to sue hat Microsoft erklärt, dass es unwiderruflich auf eine Durchsetzung aller für eine konforme Umsetzung der Office 2003 XML Reference Schemas-Spezifikation notwendigen Patente gegenüber Programmteilen, die diese Spezifikation implementieren, verzichtet.[6] Dies gilt nicht für Patentansprüche Dritter.

Verbreitung

Bearbeiten

SpreadsheetML 2003 wird unter anderem von Microsoft Excel 2003, dem Microsoft Excel Viewer 2003, LibreOffice und Gnumeric unterstützt.

Office Open XML SpreadsheetML

Bearbeiten

Office Open XML SpreadsheetML ist eine neue Version von SpreadsheetML, die Bestandteil des Office Open XML-Standards ist. Die Standardisierung erfolgte im Rahmen des technischen Komitees 45 (TC45) von Ecma International sowie innerhalb von ISO/IEC. Diese Auszeichnungssprache ist eine Weiterentwicklung von SpreadsheetML 2003.

Bearbeiten

Einzelnachweise

Bearbeiten
  1. INFO: Microsoft Excel 2002 and XML Microsoft Knowledge Base (englisch)
  2. Bringing the XML Vision to the Desktop with Office 2003 Microsoft
  3. Features and limitations of XML Spreadsheet format in Excel@1@2Vorlage:Toter Link/office.microsoft.com (Seite nicht mehr abrufbar, festgestellt im Mai 2019. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis. Microsoft
  4. Office 2003: XML Reference Schemas (englisch)
  5. Clarification of License Terms for Office XML Schema Microsoft (englisch)
  6. Microsoft Covenant Regarding Office 2003 XML Reference Schemas Microsoft