Share via


SpreadsheetDocument Class

Definition

Defines SpreadsheetDocument - an OpenXmlPackage represents a Spreadsheet document.

public class SpreadsheetDocument : DocumentFormat.OpenXml.Packaging.OpenXmlPackage
public class SpreadsheetDocument : DocumentFormat.OpenXml.Packaging.TypedOpenXmlPackage
public class SpreadsheetDocument : DocumentFormat.OpenXml.Packaging.OpenXmlPackage, DocumentFormat.OpenXml.Packaging.ISupportedRelationship<DocumentFormat.OpenXml.Packaging.ThumbnailPart>, DocumentFormat.OpenXml.Packaging.ISupportedRelationship<DocumentFormat.OpenXml.Packaging.WorkbookPart>
type SpreadsheetDocument = class
    inherit OpenXmlPackage
type SpreadsheetDocument = class
    inherit TypedOpenXmlPackage
type SpreadsheetDocument = class
    inherit OpenXmlPackage
    interface ISupportedRelationship<ThumbnailPart>
    interface ISupportedRelationship<WorkbookPart>
Public Class SpreadsheetDocument
Inherits OpenXmlPackage
Public Class SpreadsheetDocument
Inherits TypedOpenXmlPackage
Public Class SpreadsheetDocument
Inherits OpenXmlPackage
Implements ISupportedRelationship(Of ThumbnailPart), ISupportedRelationship(Of WorkbookPart)
Inheritance
Inheritance
Implements

Examples

The following example creates a basic Excel document, a workbook with one worksheet. After you run the code example, take a look at the created file, “SpreadsheetDocumentEx.xlsx,” and notice the worksheet named "mySheet.”

using System;  
using DocumentFormat.OpenXml;  
using DocumentFormat.OpenXml.Packaging;  
using DocumentFormat.OpenXml.Spreadsheet;  

namespace SpreadsheetDocumentEx  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            string fileName = @"c:\Users\Public\Documents\SpreadsheetDocumentEx.xlsx";  

            // Create a spreadsheet document by supplying the file name.  
            SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.  
                Create(fileName, 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 = spreadsheetDocument.WorkbookPart.Workbook.  
                AppendChild<Sheets>(new Sheets());  

            // Append a new worksheet and associate it with the workbook.  
            Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.  
                GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };  
            sheets.Append(sheet);  

            // Close the document.  
            spreadsheetDocument.Close();  

            Console.WriteLine("The spreadsheet document has been created.\nPress a key.");  
            Console.ReadKey();  
        }  
    }  
}  
Imports DocumentFormat.OpenXml  
Imports DocumentFormat.OpenXml.Packaging  
Imports DocumentFormat.OpenXml.Spreadsheet  
Module Module1  
    Sub Main()  
        ' Create a spreadsheet document by supplying the file name.  
        Dim fileName As String = "c:\Users\Public\Documents\SpreadsheetDocumentEx.xlsx"  
        Dim spreadsheetDocument As SpreadsheetDocument = _  
      spreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook)  

        ' Add a WorkbookPart to the document.  
        Dim workbookpart As WorkbookPart = spreadsheetDocument.AddWorkbookPart  
        workbookpart.Workbook = New Workbook  

        ' Add a WorksheetPart to the WorkbookPart.  
        Dim worksheetPart As WorksheetPart = workbookpart.AddNewPart(Of WorksheetPart)()  
        worksheetPart.Worksheet = New Worksheet(New SheetData())  

        ' Add Sheets to the Workbook.  
        Dim sheets As Sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(Of Sheets)(New Sheets())  

        ' Append a new worksheet and associate it with the workbook.  
        Dim sheet As Sheet = New Sheet  
        sheet.Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart)  
        sheet.SheetId = 1  
        sheet.Name = "mySheet"  
        sheets.Append(sheet)  
        workbookpart.Workbook.Save()  

        ' Close the document.  
        spreadsheetDocument.Close()  

        Console.WriteLine("The spreadsheet document has been created." +  
                          ControlChars.Lf + "Press a key.")  
        Console.ReadKey()  
    End Sub  
End Module  

Constructors

SpreadsheetDocument()
Obsolete.

Creates a SpreadsheetDocument.

Properties

AutoSave

Gets a value indicating whether the parts should be saved when disposed.

(Inherited from OpenXmlPackage)
CompressionOption

Gets or sets the compression level for the content of the new part

(Inherited from OpenXmlPackage)
CoreFilePropertiesPart

Gets the CoreFilePropertiesPart of the SpreadsheetDocument.

CustomFilePropertiesPart

Gets the CustomFilePropertiesPart of the SpreadsheetDocument.

DataPartReferenceRelationships

Gets all DataPartReferenceRelationship relationships.

(Inherited from OpenXmlPartContainer)
DataParts

Gets all the DataPart parts in the document package.

(Inherited from OpenXmlPackage)
DigitalSignatureOriginPart

Gets the DigitalSignatureOriginPart of the SpreadsheetDocument.

DocumentType

Gets the type of the SpreadsheetDocument.

ExtendedFilePropertiesPart

Gets the ExtendedFilePropertiesPart of the SpreadsheetDocument.

ExternalRelationships

Gets all external relationships. Hyperlink relationships are not included, use HyperlinkRelationship property to enumerate hyperlink relationships.

(Inherited from OpenXmlPartContainer)
Features

Gets the features associated with this part.

Features

Gets the features associated with this part.

(Inherited from OpenXmlPackage)
FileOpenAccess

Gets the FileAccess setting for the document. The current I/O access settings are: Read, Write, or ReadWrite.

(Inherited from OpenXmlPackage)
HyperlinkRelationships

Gets all hyperlink relationships.

(Inherited from OpenXmlPartContainer)
LabelInfoPart

Gets the LabelInfoPart of the SpreadsheetDocument, only available in Office2021.

MarkupCompatibilityProcessSettings

Gets the markup compatibility settings applied at loading time.

(Inherited from OpenXmlPackage)
MaxCharactersInPart

Gets a value that indicates the maximum allowable number of characters in an Open XML part. A zero (0) value indicates that there are no limits on the size of the part. A non-zero value specifies the maximum size, in characters.

(Inherited from OpenXmlPackage)
Package
Obsolete.

Gets the package of the document.

(Inherited from OpenXmlPackage)
PackageProperties

Gets the package properties.

(Inherited from OpenXmlPackage)
PartExtensionProvider

Gets a PartExtensionProvider part which provides a mapping from ContentType to part extension.

(Inherited from OpenXmlPackage)
Parts

Gets all parts which are relationship targets of this part.

(Inherited from OpenXmlPartContainer)
QuickAccessToolbarCustomizationsPart

Gets the QuickAccessToolbarCustomizationsPart of the SpreadsheetDocument.

RibbonAndBackstageCustomizationsPart

Gets the RibbonAndBackstageCustomizationsPart of the SpreadsheetDocument, only available in Office2010.

RibbonExtensibilityPart

Gets the RibbonExtensibilityPart of the SpreadsheetDocument.

RootPart

Gets the root part for the package.

RootPart

Gets the root part for the package.

(Inherited from OpenXmlPackage)
StrictRelationshipFound

Gets a value indicating whether this package contains Transitional relationships converted from Strict.

(Inherited from OpenXmlPackage)
ThumbnailPart

Gets the ThumbnailPart of the SpreadsheetDocument.

WebExTaskpanesPart

Gets the WebExTaskpanesPart of the SpreadsheetDocument, only available in Office2013.

WorkbookPart

Gets the WorkbookPart of the SpreadsheetDocument.

Methods

AddAnnotation(Object)

Adds an object to the annotation list of this PartContainer.

(Inherited from OpenXmlPartContainer)
AddCoreFilePropertiesPart()

Add a CoreFilePropertiesPart to the SpreadsheetDocument.

AddCustomFilePropertiesPart()

Add a CustomFilePropertiesPart to the SpreadsheetDocument.

AddDigitalSignatureOriginPart()

Add a DigitalSignatureOriginPart to the SpreadsheetDocument.

AddExtendedFilePropertiesPart()

Add a ExtendedFilePropertiesPart to the SpreadsheetDocument.

AddExtendedPart(String, String, String, String)

Adds an extended part ( Application specific part ).

(Inherited from OpenXmlPartContainer)
AddExtendedPart(String, String, String)

Adds an extended part ( Application specific part ).

(Inherited from OpenXmlPartContainer)
AddExternalRelationship(String, Uri, String)

Adds an external relationship. Do not add hyperlink relationships through this method. Use AddHyperlinkRelationship() instead.

(Inherited from OpenXmlPartContainer)
AddExternalRelationship(String, Uri)

Adds an external relationship. Do not add hyperlink relationships through this method. Use AddHyperlinkRelationship() instead.

(Inherited from OpenXmlPartContainer)
AddHyperlinkRelationship(Uri, Boolean, String)

Adds a new hyperlink relationship.

(Inherited from OpenXmlPartContainer)
AddHyperlinkRelationship(Uri, Boolean)

Adds a new hyperlink relationship.

(Inherited from OpenXmlPartContainer)
AddLabelInfoPart()

Adds a LabelInfoPart to the SpreadsheetDocument, this part is only available in Office2021.

AddNewPart<T>()

Adds a new part of type T.

(Inherited from OpenXmlPartContainer)
AddNewPart<T>(String, String)

Adds a new part of type T.

AddNewPart<T>(String)

Adds a new part of type T.

(Inherited from OpenXmlPartContainer)
AddPart<T>(T, String)

Adds the part to the document with a given relationship identifier (ID). Must use the returned part to operate on the part added to the document

(Inherited from OpenXmlPartContainer)
AddPart<T>(T)

Adds the specified part to the document. Use the returned part to operate on the part added to the document.

(Inherited from OpenXmlPackage)
AddQuickAccessToolbarCustomizationsPart()

Adds a QuickAccessToolbarCustomizationsPart to the SpreadsheetDocument.

AddRibbonAndBackstageCustomizationsPart()

Adds a RibbonAndBackstageCustomizationsPart to the SpreadsheetDocument, this part is only available in Office2010.

AddRibbonExtensibilityPart()

Adds a RibbonExtensibilityPart to the SpreadsheetDocument.

AddThumbnailPart(String)

Add a ThumbnailPart to the SpreadsheetDocument.

AddThumbnailPart(ThumbnailPartType)

Adds a ThumbnailPart to the SpreadsheetDocument.

AddWebExTaskpanesPart()

Adds a WebExTaskpanesPart to the SpreadsheetDocument, this part is only available in Office2013.

AddWorkbookPart()

Created the WorkbookPart and add it to this document.

Annotation(Type)

Get the first annotation object of the specified type from this PartContainer.

(Inherited from OpenXmlPartContainer)
Annotation<T>()

Get the first annotation object of the specified type from this PartContainer.

(Inherited from OpenXmlPartContainer)
Annotations(Type)

Gets a collection of annotations of the specified type for this PartContainer.

(Inherited from OpenXmlPartContainer)
Annotations<T>()

Gets a collection of annotations of the specified type for this PartContainer.

(Inherited from OpenXmlPartContainer)
ChangeDocumentType(SpreadsheetDocumentType)

Changes the document type.

ChangeIdOfPart(OpenXmlPart, String)

Changes the relationship ID of the part.

(Inherited from OpenXmlPartContainer)
Clone()

Creates an editable clone of this OpenXml package, opened on a MemoryStream with expandable capacity and using default OpenSettings.

(Inherited from OpenXmlPackage)
Clone(Package, OpenSettings)

Creates a clone of this OpenXml package, opened on the specified instance of Package.

(Inherited from OpenXmlPackage)
Clone(Package)

Creates a clone of this OpenXml package, opened on the specified instance of Package. The clone will be opened with the same OpenSettings as this OpenXml package.

(Inherited from OpenXmlPackage)
Clone(Stream, Boolean, OpenSettings)

Creates a clone of this OpenXml package, opened on the given stream.

(Inherited from OpenXmlPackage)
Clone(Stream, Boolean)

Creates a clone of this OpenXml package, opened on the given stream. The cloned OpenXml package is opened with the same OpenSettings as this OpenXml package.

(Inherited from OpenXmlPackage)
Clone(Stream)

Creates a clone of this OpenXml package, opened on the given stream. The cloned OpenXml package is opened with the same settings, i.e., FileOpenAccess and OpenSettings, as this OpenXml package.

(Inherited from OpenXmlPackage)
Clone(String, Boolean, OpenSettings)

Creates a clone of this OpenXml package opened from the given file (which will be created by cloning this OpenXml package).

(Inherited from OpenXmlPackage)
Clone(String, Boolean)

Creates a clone of this OpenXml package opened from the given file (which will be created by cloning this OpenXml package). The cloned OpenXml package is opened with the same OpenSettings as this OpenXml package.

(Inherited from OpenXmlPackage)
Clone(String)

Creates a clone of this OpenXml package opened from the given file (which will be created by cloning this OpenXml package). The cloned OpenXml package is opened with the same settings, i.e., FileOpenAccess and OpenSettings, as this OpenXml package.

(Inherited from OpenXmlPackage)
Close()
Obsolete.

Saves and closes the OpenXml package and all underlying part streams.

(Inherited from OpenXmlPackage)
Create(Package, SpreadsheetDocumentType, Boolean)

Creates a new instance of the SpreadsheetDocument class from the specified package.

Create(Package, SpreadsheetDocumentType)

Creates a new instance of the SpreadsheetDocument class from the specified package.

Create(Stream, SpreadsheetDocumentType, Boolean)

Creates a new instance of the SpreadsheetDocument class from the IO stream.

Create(Stream, SpreadsheetDocumentType)

Creates a new instance of the SpreadsheetDocument class from the IO stream.

Create(String, SpreadsheetDocumentType, Boolean)

Creates a new instance of the SpreadsheetDocument class from the specified file.

Create(String, SpreadsheetDocumentType)

Creates a new instance of the SpreadsheetDocument class from the specified file.

CreateClone(Package)

Creates a new instance of OpenXmlPackage on the specified instance of Package.

CreateClone(Package)

Creates a new instance of OpenXmlPackage on the specified instance of Package.

(Inherited from OpenXmlPackage)
CreateClone(Stream)

Creates a new OpenXmlPackage on the given stream.

CreateClone(Stream)

Creates a new OpenXmlPackage on the given stream.

(Inherited from OpenXmlPackage)
CreateClone(String)

Creates a new OpenXml package on the given file.

CreateClone(String)

Creates a new OpenXml package on the given file.

(Inherited from OpenXmlPackage)
CreateFromTemplate(String)

Creates an editable SpreadsheetDocument from a template, opened on a MemoryStream with expandable capacity.

CreateMediaDataPart(MediaDataPartType)

Creates a new MediaDataPart part in the document package.

(Inherited from OpenXmlPackage)
CreateMediaDataPart(String, String)

Creates a new MediaDataPart part in the document package.

(Inherited from OpenXmlPackage)
CreateMediaDataPart(String)

Creates a new MediaDataPart part in the document package.

(Inherited from OpenXmlPackage)
CreateRelationshipToPart(OpenXmlPart, String)

Adds a relationship for the specified part to this part.

(Inherited from OpenXmlPartContainer)
CreateRelationshipToPart(OpenXmlPart)

Adds a relationship for the specified part to this part.

(Inherited from OpenXmlPartContainer)
DeleteExternalRelationship(ExternalRelationship)

Deletes the specified external relationship.

(Inherited from OpenXmlPartContainer)
DeleteExternalRelationship(String)

Deletes the specified ExternalRelationship.

(Inherited from OpenXmlPartContainer)
DeletePart(DataPart)

Deletes the specified DataPart from the document package.

(Inherited from OpenXmlPackage)
DeletePart(OpenXmlPart)

Deletes a specified part in the package root layer.

(Inherited from OpenXmlPartContainer)
DeletePart(String)

Deletes the specified child part from this part.

(Inherited from OpenXmlPartContainer)
DeleteParts<T>(IEnumerable<T>)

Deletes all the parts which are in the passed in collection from the document.

(Inherited from OpenXmlPartContainer)
DeletePartsRecursivelyOfType<T>()

Deletes all the parts with the specified part type from the package recursively.

(Inherited from OpenXmlPackage)
DeleteReferenceRelationship(ReferenceRelationship)

Deletes the specified reference relationship.

(Inherited from OpenXmlPartContainer)
DeleteReferenceRelationship(String)

Deletes the specified reference relationship.

(Inherited from OpenXmlPartContainer)
Dispose()

Flushes and saves the content, closes the document, and releases all resources.

(Inherited from OpenXmlPackage)
Dispose(Boolean)

Flushes and saves the content, closes the document, and releases all resources.

(Inherited from OpenXmlPackage)
FromFlatOpcDocument(XDocument, Package)

Creates a new instance of SpreadsheetDocument from a workbook in Flat OPC format on the specified instance of Package.

FromFlatOpcDocument(XDocument, Stream, Boolean)

Creates a new instance of SpreadsheetDocument from a workbook in Flat OPC format.

FromFlatOpcDocument(XDocument, String, Boolean)

Creates a new instance of SpreadsheetDocument from a workbook in Flat OPC format.

FromFlatOpcDocument(XDocument)

Creates a new editable instance of SpreadsheetDocument from an XDocument in Flat OPC format, opened on a MemoryStream.

FromFlatOpcString(String, Package)

Creates a new instance of SpreadsheetDocument from a string in Flat OPC format.

FromFlatOpcString(String, Stream, Boolean)

Creates a new instance of SpreadsheetDocument from a string in Flat OPC format on a

FromFlatOpcString(String, String, Boolean)

Creates a new instance of SpreadsheetDocument from a string in Flat OPC format.

FromFlatOpcString(String)

Creates a new instance of SpreadsheetDocument from a string in Flat OPC format on a MemoryStream with expandable capacity.

GetExternalRelationship(String)

Gets the specified ExternalRelationship.

(Inherited from OpenXmlPartContainer)
GetIdOfPart(OpenXmlPart)

Gets the relationship ID of the part.

(Inherited from OpenXmlPartContainer)
GetPartById(String)

Gets the child part through the relationship ID.

(Inherited from OpenXmlPartContainer)
GetPartsCountOfType<T>()
Obsolete.

Gets the count of all parts of type T.

(Inherited from OpenXmlPartContainer)
GetPartsOfType<T>()

Enumerates all the children parts of the specified type T of this part.

(Inherited from OpenXmlPartContainer)
GetPartsOfType<T>(ICollection<T>)
Obsolete.

Gets all the children parts of the specified type T into partCollection of this part.

(Inherited from OpenXmlPartContainer)
GetReferenceRelationship(String)

Gets the specified ReferenceRelationship.

(Inherited from OpenXmlPartContainer)
Open(Package, OpenSettings)

Creates a new instance of the SpreadsheetDocument class from the specified package.

Open(Package)

Creates a new instance of the SpreadsheetDocument class from the specified package.

Open(Stream, Boolean, OpenSettings)

Creates a new instance of the SpreadsheetDocument class from the IO stream.

Open(Stream, Boolean)

Creates a new instance of the SpreadsheetDocument class from the IO stream.

Open(String, Boolean, OpenSettings)

Creates a new instance of the SpreadsheetDocument class from the specified file.

Open(String, Boolean)

Creates a new instance of the SpreadsheetDocument class from the specified file.

OpenClone(Stream, Boolean, OpenSettings)

Opens the cloned OpenXml package on the given stream.

OpenClone(Stream, Boolean, OpenSettings)

Opens the cloned OpenXml package on the given stream.

(Inherited from OpenXmlPackage)
OpenClone(String, Boolean, OpenSettings)

Opens the cloned OpenXml package on the given file.

OpenClone(String, Boolean, OpenSettings)

Opens the cloned OpenXml package on the given file.

(Inherited from OpenXmlPackage)
RemoveAnnotations(Type)

Removes the annotations of the specified type from this PartContainer.

(Inherited from OpenXmlPartContainer)
RemoveAnnotations<T>()

Removes the annotations of the specified type from this PartContainer.

(Inherited from OpenXmlPartContainer)
Save()

Saves the contents of all parts and relationships that are contained in the OpenXml package, if FileOpenAccess is ReadWrite. Some platforms do not support saving due to limitations in Package, so please query CanSave at runtime to know if full saving will be supported without closing and disposing of the OpenXmlPackage.

(Inherited from OpenXmlPackage)
SaveAs(String)
Obsolete.

Saves the contents of all parts and relationships that are contained in the OpenXml package to the specified file. Opens the saved document using the same settings that were used to open this OpenXml package.

(Inherited from OpenXmlPackage)
ThrowIfObjectDisposed()

Thrown if an object is disposed.

(Inherited from OpenXmlPackage)
ToFlatOpcDocument()

Converts an OpenXml package in OPC format to an XDocument in Flat OPC format.

ToFlatOpcDocument()

Converts an OpenXml package in OPC format to an XDocument in Flat OPC format.

(Inherited from OpenXmlPackage)
ToFlatOpcDocument(XProcessingInstruction)

Converts an OpenXml package in OPC format to an XDocument in Flat OPC format.

(Inherited from OpenXmlPackage)
ToFlatOpcString()

Converts an OpenXml package in OPC format to string in Flat OPC format.

(Inherited from OpenXmlPackage)
TryGetPartById(String, OpenXmlPart)

Try to get the child part by the relationship ID.

(Inherited from OpenXmlPartContainer)
Validate(OpenXmlPackageValidationSettings)
Obsolete.

Validates the package. This method does not validate the XML content in each part.

(Inherited from OpenXmlPackage)

Extension Methods

GetPackage(OpenXmlPackage)

Gets the current IPackage for the package.

AddDisposableFeature(OpenXmlPackage)
AddPackageEventsFeature(OpenXmlPackage)

Adds a feature to track eventing for a package lifecycle events.

AddPartEventsFeature(OpenXmlPackage)

Adds a feature to track eventing for a package creating or removing parts.

AddPartRootEventsFeature(OpenXmlPartContainer)

Adds a feature to track eventing for package life cycle events.

AddRandomNumberGeneratorFeature(OpenXmlPackage)

Add a random number generator to the package.

CreateUnknownElement(OpenXmlPartContainer, String)

Creates a new OpenXmlUnknownElement class by using the outer XML.

ToFlatOpcDocument(OpenXmlPackage)

Converts an OpenXml package in OPC format to an XDocument in Flat OPC format.

ToFlatOpcString(OpenXmlPackage)

Converts an OpenXml package in OPC format to string in Flat OPC format.

GetAllParts(OpenXmlPackage)

Traverse parts in the OpenXmlPackage by breadth-first.

IgnoreCalculationChainPartRelationship(SpreadsheetDocument)

Sets up the spreadsheet to ignore any CalculationChainPart relationships if the part is not there.

Applies to