Struktur eines SpreadsheetML-Dokuments
Die Struktur eines SpreadsheetML-Dokuments besteht aus dem <workbook>-Element, das die <sheets>- und <sheet>-Elemente enthält, die auf die Arbeitsblätter in der Arbeitsmappe verweisen. Es wird eine separate XML-Datei für jedes Arbeitsblatt erstellt. Diese Elemente sind die erforderlichen Mindestelemente für ein gültiges Tabellenkalkulationsdokument. Darüber hinaus enthält ein Tabellenkalkulationsdokument möglicherweise <table>-, <chartsheet>-, <pivotTableDefinition>- oder andere mit Tabellenkalkulationen in Verbindung stehende Elemente.
Hinweis
Haben Sie Interesse an der Entwicklung von Lösungen, mit denen die Funktionen von Office über mehrere Plattformen erweitert werden können? Schauen Sie sich das neue Office-Add-In-Modell an. Office-Add-Ins haben im Vergleich zu VSTO-Add-Ins und -Lösungen einen geringen Platzbedarf. Sie können sie mit fast jeder Web-Programmiertechnologie erstellen, z. B. HTML5, JavaScript, CSS3 und XML.
Wichtige Teile einer Tabellenkalkulation
Mit dem Open XML SDK für Office können Sie Dokumentstrukturen und Inhalte erstellen, die stark typisierte Klassen verwenden, die SpreadsheetML-Elementen entsprechen. Sie finden diese Klassen im DocumentFormat.OpenXML.Spreadsheet-Namespace. In der folgenden Tabelle werden die Klassennamen der Klassen aufgeführt, die einigen wichtigen Tabellenkalkulationselementen entsprechen.
Paketteil | SpreadsheetML-Element der obersten Ebene | Open XML SDK-Klasse | Beschreibung |
---|---|---|---|
Arbeitsmappe | Arbeitsmappe | Workbook | Das Stammelement des Hauptdokumentteils. |
Arbeitsblatt | worksheet | Worksheet | Ein Blatttyp, der ein Zellenraster darstellt, das Text, Zahlen, Datumsangaben und Formeln enthält. Weitere Informationen finden Sie unter Arbeiten mit Blättern. |
Diagrammblatt | chartsheet | Chartsheet | Ein Blatt, das ein Diagramm darstellt, das als eigenes Blatt gespeichert wird. Weitere Informationen finden Sie unter Arbeiten mit Blättern. |
Tabelle | table | Table | Ein logisches Konstrukt, das angibt, dass ein Datenbereich zu einem einzelnen DataSet gehört. Weitere Informationen finden Sie unter Arbeiten mit SpreadsheetML-Tabellen. |
PivotTable | pivotTableDefinition | PivotTableDefinition | Ein logisches Konstrukt, das eine zusammengesetzte Ansicht von Daten in einem verständlichen Layout anzeigt. Weitere Informationen finden Sie unter Working with PivotTables. |
PivotCache | pivotCacheDefinition | PivotCacheDefinition | Ein Konstrukt, das die Quelle der Daten in der PivotTable definiert. Weitere Informationen finden Sie unter Working with PivotTables. |
PivotCache-Datensätze | pivotCacheRecords | PivotCacheRecords | Ein Cache der Quelldaten der PivotTable. Weitere Informationen finden Sie unter Working with PivotTables. |
Berechnungskette | calcChain | CalculationChain | Ein Konstrukt, das die Reihenfolge angibt, in der Zellen in der Arbeitsmappe zuletzt berechnet wurden. Weitere Informationen finden Sie unter Arbeiten mit der Berechnungskette. |
Freigegebene Zeichenfolgentabelle | sst | SharedStringTable | Ein Konstrukt, das ein Vorkommen jeder eindeutigen Zeichenfolge enthält, die in allen Arbeitsblättern einer Arbeitsmappe vorkommt. Weitere Informationen finden Sie unter Arbeiten mit der freigegebenen Zeichenfolgentabelle. |
Bedingte Formatierung | conditionalFormatting | ConditionalFormatting | Ein Konstrukt, das ein Format definiert, das auf eine Zelle oder eine Reihe von Zellen angewendet wird. Weitere Informationen finden Sie unter Arbeiten mit bedingter Formatierung. |
Formeln | f | CellFormula | Ein Konstrukt, das den Formeltext für eine Zelle definiert, die eine Formel enthält. Weitere Informationen finden Sie unter Arbeiten mit Formeln. |
Szenario mit der minimalen Arbeitsmappe
In dem folgenden Text aus Standard ECMA-376 wird das Szenario mit der minimalen Arbeitsmappe eingeführt.
Die kleinste mögliche (leere) Arbeitsmappe muss Folgendes enthalten:
Ein einzelnes Arbeitsblatt
Eine Blatt-ID
Eine Beziehungs-ID, die auf den Speicherort der Blattdefinition verweist
© Ecma International: Dezember 2006.
Open XML SDK-Codebeispiel
In diesem Codebeispiel werden die Klassen im Open XML SDK verwendet, um eine minimale, leere Arbeitsmappe zu erstellen.
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
CreateSpreadsheetWorkbook(args[0]);
static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
workbookPart.Workbook.Save();
// Dispose the document.
spreadsheetDocument.Dispose();
}
Szenario mit typischer Arbeitsmappe
Eine typische Arbeitsmappe ist keine leere Mindestarbeitsmappe. Eine typische Arbeitsmappe kann Zahlen, Text, Diagramme, Tabellen und PivotTables enthalten. Jeder dieser zusätzlichen Teile ist im ZIP-Paket des Tabellenkalkulationsdokuments enthalten.
In der folgenden Abbildung wird ein Großteil der Elemente dargestellt, die Sie in einer typischen Tabellenkalkulation finden.
Abbildung 2: Typische Tabellenelemente