Workbook Class
Workbook. It is the root element of WorkbookPart.When the object is serialized out as xml, its qualified name is x:workbook.
Inheritance Hierarchy
System.Object
DocumentFormat.OpenXml.OpenXmlElement
DocumentFormat.OpenXml.OpenXmlCompositeElement
DocumentFormat.OpenXml.OpenXmlPartRootElement
DocumentFormat.OpenXml.Spreadsheet.Workbook
Namespace: DocumentFormat.OpenXml.Spreadsheet
Assembly: DocumentFormat.OpenXml (in DocumentFormat.OpenXml.dll)
Syntax
'Declaration
<ChildElementInfoAttribute(GetType(SmartTagTypes))> _
<ChildElementInfoAttribute(GetType(WorkbookExtensionList))> _
<ChildElementInfoAttribute(GetType(ExternalReferences))> _
<ChildElementInfoAttribute(GetType(FileVersion))> _
<ChildElementInfoAttribute(GetType(FileSharing))> _
<ChildElementInfoAttribute(GetType(WorkbookProperties))> _
<ChildElementInfoAttribute(GetType(WorkbookProtection))> _
<ChildElementInfoAttribute(GetType(BookViews))> _
<ChildElementInfoAttribute(GetType(Sheets))> _
<ChildElementInfoAttribute(GetType(FunctionGroups))> _
<ChildElementInfoAttribute(GetType(CustomWorkbookViews))> _
<ChildElementInfoAttribute(GetType(DefinedNames))> _
<ChildElementInfoAttribute(GetType(CalculationProperties))> _
<ChildElementInfoAttribute(GetType(OleSize))> _
<ChildElementInfoAttribute(GetType(SmartTagProperties))> _
<ChildElementInfoAttribute(GetType(PivotCaches))> _
<ChildElementInfoAttribute(GetType(WebPublishing))> _
<ChildElementInfoAttribute(GetType(FileRecoveryProperties))> _
<ChildElementInfoAttribute(GetType(WebPublishObjects))> _
Public Class Workbook _
Inherits OpenXmlPartRootElement
'Usage
Dim instance As Workbook
[ChildElementInfoAttribute(typeof(SmartTagTypes))]
[ChildElementInfoAttribute(typeof(WorkbookExtensionList))]
[ChildElementInfoAttribute(typeof(ExternalReferences))]
[ChildElementInfoAttribute(typeof(FileVersion))]
[ChildElementInfoAttribute(typeof(FileSharing))]
[ChildElementInfoAttribute(typeof(WorkbookProperties))]
[ChildElementInfoAttribute(typeof(WorkbookProtection))]
[ChildElementInfoAttribute(typeof(BookViews))]
[ChildElementInfoAttribute(typeof(Sheets))]
[ChildElementInfoAttribute(typeof(FunctionGroups))]
[ChildElementInfoAttribute(typeof(CustomWorkbookViews))]
[ChildElementInfoAttribute(typeof(DefinedNames))]
[ChildElementInfoAttribute(typeof(CalculationProperties))]
[ChildElementInfoAttribute(typeof(OleSize))]
[ChildElementInfoAttribute(typeof(SmartTagProperties))]
[ChildElementInfoAttribute(typeof(PivotCaches))]
[ChildElementInfoAttribute(typeof(WebPublishing))]
[ChildElementInfoAttribute(typeof(FileRecoveryProperties))]
[ChildElementInfoAttribute(typeof(WebPublishObjects))]
public class Workbook : OpenXmlPartRootElement
Remarks
The following table lists the possible child types:
FileVersion <x:fileVersion>
FileSharing <x:fileSharing>
WorkbookProperties <x:workbookPr>
WorkbookProtection <x:workbookProtection>
BookViews <x:bookViews>
Sheets <x:sheets>
FunctionGroups <x:functionGroups>
ExternalReferences <x:externalReferences>
DefinedNames <x:definedNames>
CalculationProperties <x:calcPr>
OleSize <x:oleSize>
CustomWorkbookViews <x:customWorkbookViews>
PivotCaches <x:pivotCaches>
SmartTagProperties <x:smartTagPr>
SmartTagTypes <x:smartTagTypes>
WebPublishing <x:webPublishing>
FileRecoveryProperties <x:fileRecoveryPr>
WebPublishObjects <x:webPublishObjects>
WorkbookExtensionList <x:extLst>
[ISO/IEC 29500-1 1st Edition]
18.2.27 workbook (Workbook)
The workbook element is the top level element. It contains elements and attributes that encompass the data content of the workbook. The workbook's child elements each have their own subclause references, and these are shown in the child elements table below. A partial list of the workbook's structures that these elements represent are:
Sheets: represents the collection of worksheets in the workbook. The sheets are the central structure within a workbook, and contain the text, numbers, dates, formulas, and other elements of a workbook.
Views: SpreadsheetML defines a collection of Workbook views that define basic window dimensions and position of the workbook if it is ever displayed by a spreadsheet application. It also defines a collection of Custom Workbook Views that allows SpreadsheetML to describe one or more views of the data within a workbook.
Properties: the workbook has several property collection that store basic workbook settings, such as the date system to use, file protection settings, calculation settings, and smart tag behaviors.
Names: words or strings of characters that represent cells, ranges of cells, formulas, or constant values.
[Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workbook xmlns="https://schemas.openxmlformats.org/spreadsheetml/2006/5/main"
mlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships">
<fileVersion lastEdited="4" lowestEdited="4" rupBuild="4017"/>
<workbookPr dateCompatibility="false" vbName="ThisWorkbook" defaultThemeVersion="123820"/>
<bookViews>
<workbookView xWindow="120" yWindow="45" windowWidth="15135"
windowHeight="7650" activeTab="4"/>
</bookViews>
<sheets>
<sheet name="Sheet1" sheetId="1" r:id="rId1"/>
<sheet name="Sheet2" sheetId="2" r:id="rId2"/>
<sheet name="Sheet5" sheetId="3" r:id="rId3"/>
<sheet name="Chart1" sheetId="4" type="chartsheet" r:id="rId4"/>
</sheets>
<definedNames>
<definedName name="MyDefinedName">Sheet3!$A$1:$C$12</definedName>
</definedNames>
<calcPr calcId="122211" calcMode="autoNoTable" refMode="R1C1" iterate="1"
fullPrecision="0"/>
<customWorkbookViews>
<customWorkbookView name="CustomView1"
guid="{CE6681F1-E999-414D-8446-68A031534B57}" maximized="1" xWindow="1"
yWindow="1" windowWidth="1024" windowHeight="547" activeSheetId="1"/>
</customWorkbookViews>
<pivotCaches>
<pivotCache cacheId="0" r:id="rId8"/>
</pivotCaches>
<smartTagPr embed="1" show="noIndicator"/>
<smartTagTypes>
<smartTagType namespaceUri="urn:schemas-openxmlformats-org:office:smarttags"
name="date"/>
</smartTagTypes>
<webPublishing codePage="1252"/>
</workbook>
end example]
Parent Elements |
---|
Root element of SpreadsheetML Workbook part |
Child Elements |
Subclause |
---|---|
bookViews (Workbook Views) |
§18.2.1 |
calcPr (Calculation Properties) |
§18.2.2 |
customWorkbookViews (Custom Workbook Views) |
§18.2.4 |
definedNames (Defined Names) |
§18.2.6 |
externalReferences (External References) |
§18.2.9 |
extLst (Future Feature Data Storage Area) |
§18.2.10 |
fileRecoveryPr (File Recovery Properties) |
§18.2.11 |
fileSharing (File Sharing) |
§18.2.12 |
fileVersion (File Version) |
§18.2.13 |
functionGroups (Function Groups) |
§18.2.15 |
oleSize (Embedded Object Size) |
§18.2.16 |
pivotCaches (PivotCaches) |
§18.2.18 |
sheets (Sheets) |
§18.2.20 |
smartTagPr (Smart Tag Properties) |
§18.2.21 |
smartTagTypes (Smart Tag Types) |
§18.2.23 |
webPublishing (Web Publishing Properties) |
§18.2.24 |
webPublishObjects (Web Publish Objects) |
§18.2.26 |
workbookPr (Workbook Properties) |
§18.2.28 |
workbookProtection (Workbook Protection) |
§18.2.29 |
Attributes |
Description |
---|---|
conformance (Document Conformance Class) |
Specifies the conformance class (§2.4) to which the SpreadsheetML document conforms. If this attribute is omitted, its default value is transitional. [Example: Consider the following SpreadsheetML Workbook part markup:
This document has a conformance attribute value of strict, therefore it conforms to the SML Strict conformance class. end example] The possible values for this attribute are defined by the ST_ConformanceClass simple type (§22.9.2.2). |
[Note: The W3C XML Schema definition of this element’s content model (CT_Workbook) is located in §A.2. end note]
© ISO/IEC29500: 2008.
Examples
The following code example opens an existing spreadsheet document and adds a new worksheet, named "mySheet," and associates it with the workbook.
using System;
using System.Linq;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
namespace WorkbookEx
{
class Program
{
static void Main(string[] args)
{
string fileName = @"C:\Users\Public\Documents\WorkbookEx.xlsx";
// Open an existing spreadsheet document for editing.
using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(fileName, true))
{
// Add a blank WorksheetPart.
WorksheetPart newWorksheetPart = spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>();
newWorksheetPart.Worksheet = new Worksheet(new SheetData());
// Create a Sheets object in the Workbook.
Sheets sheets = spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>();
string relationshipId = spreadSheet.WorkbookPart.GetIdOfPart(newWorksheetPart);
// Create a unique ID for the new worksheet.
uint sheetId = 1;
if (sheets.Elements<Sheet>().Count() > 0)
{
sheetId = sheets.Elements<Sheet>().Select(s => s.SheetId.Value).Max() + 1;
}
// Give the new worksheet a name.
string sheetName = "mySheet" + sheetId;
// Append the new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = sheetName };
sheets.Append(sheet);
}
Console.WriteLine("All done. Press a key.");
Console.ReadKey();
}
}
}
Imports System.Linq
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Spreadsheet
Module Module1
Sub Main()
Dim fileName As String = "C:\Users\Public\Documents\WorkbookEx.xlsx"
' Open an existing spreadsheet document for editing.
Dim spreadSheet As SpreadsheetDocument = SpreadsheetDocument.Open(fileName, True)
Using (spreadSheet)
' Add a blank WorksheetPart.
Dim newWorksheetPart As WorksheetPart = spreadSheet.WorkbookPart.AddNewPart(Of WorksheetPart)()
newWorksheetPart.Worksheet = New Worksheet(New SheetData())
' Create a Sheets object.
Dim sheets As Sheets = spreadSheet.WorkbookPart.Workbook.GetFirstChild(Of Sheets)()
Dim relationshipId As String = spreadSheet.WorkbookPart.GetIdOfPart(newWorksheetPart)
' Get a unique ID for the new worksheet.
Dim sheetId As UInteger = 1
If (sheets.Elements(Of Sheet).Count > 0) Then
sheetId = sheets.Elements(Of Sheet).Select(Function(s) s.SheetId.Value).Max + 1
End If
' Give the new worksheet a name.
Dim sheetName As String = ("mySheet" + sheetId.ToString())
' Append the new worksheet and associate it with the workbook.
Dim sheet As Sheet = New Sheet
sheet.Id = relationshipId
sheet.SheetId = sheetId
sheet.Name = sheetName
sheets.Append(sheet)
End Using
Console.WriteLine("All done. Press a key.")
Console.ReadKey()
End Sub
End Module
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.