Erstellen eines Spreadsheet-Dokuments durch Angeben eines Dateinamens
In diesem Thema wird gezeigt, wie Sie die Klassen im Open XML SDK für Office zum programmgesteuerten Erstellen eines Tabellenkalkulationsdokuments verwenden.
Erstellen eines SpreadsheetDocument-Objekts
Im Open XML SDK stellt die SpreadsheetDocument -Klasse ein Excel-Dokumentpaket dar. Um ein Excel-Dokument zu erstellen, erstellen Sie eine instance der SpreadsheetDocument
-Klasse, und füllen Sie sie mit Teilen auf. Das Dokument muss mindestens einen Arbeitsmappenteil, der als Container für das Dokument dient, und mindestens einen Arbeitsblattteil aufweisen. Der Text wird im Paket mithilfe von SpreadsheetML
Markup als XML dargestellt.
Um die Klasse instance zu erstellen, rufen Sie die -Methode aufCreate. Es werden mehrere Create
Methoden mit jeweils unterschiedlicher Signatur bereitgestellt. Der Beispielcode in diesem Thema verwendet die Create
-Methode mit einer Signatur, die zwei Parameter erfordert. Der erste Parameter, package
, verwendet eine vollständige Pfadzeichenfolge, die das Dokument darstellt, das Sie erstellen möchten. Der zweite Parameter, type, ist ein Member der SpreadsheetDocumentType Enumeration. Dieser Parameter steht für den Dokumenttyp. Beispielsweise gibt es verschiedene Member der SpreadsheetDocumentType
Enumeration für Add-Ins, Vorlagen, Arbeitsmappen und makrofähige Vorlagen und Arbeitsmappen.
Hinweis
Wählen Sie die entsprechende SpreadsheetDocumentType
aus, und stellen Sie sicher, dass die persistente Datei über die richtige, übereinstimmende Dateinamenerweiterung verfügt. Wenn nicht SpreadsheetDocumentType
mit der Dateinamenerweiterung übereinstimmt, tritt beim Öffnen der Datei in Excel ein Fehler auf.
Im folgenden Codebeispiel wird die Create
-Methode aufgerufen.
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook))
Sobald Sie das Excel-Dokumentpaket erstellt haben, können Sie Bausteine hinzufügen. Zum Hinzufügen des Arbeitsmappenteils rufen Sie die AddWorkbookPart -Methode der SpreadsheetDocument
-Klasse auf.
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
Eine Arbeitsmappe muss mindestens ein Arbeitsblatt enthalten. Um ein Arbeitsblatt hinzuzufügen, erstellen Sie ein neues Sheet
. Wenn Sie einen neuen Sheet
erstellen, ordnen Sie die Sheet
dem zu Workbook , indem Sie die Id
Parameter , SheetId
und Name
übergeben. Verwenden Sie die GetIdOfPart -Methode, um den Id
des Sheet
abzurufen. Fügen Sie dann das neue Blatt der Sheet
Auflistung hinzu, indem Sie die Append -Methode der Sheets -Klasse aufrufen.
Um die grundlegende Dokumentstruktur mithilfe des Open XML SDK zu erstellen, instanziieren Sie die Workbook
-Klasse, weisen Sie sie der WorkbookPart -Eigenschaft des Standard Dokumentteils zu, und fügen Sie dann Instanzen von WorksheetPart, Worksheet
und Sheet
hinzu. Im folgenden Codebeispiel wird ein neues Arbeitsblatt erstellt, verknüpft und an die Arbeitsmappe angehangen.
// 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);
Beispielcode
Nachstehend ist der vollständige Beispielcode in C# und Visual Basic aufgeführt.
static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
using (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);
}
}