Share via


WordprocessingDocument Class

Definition

Defines WordprocessingDocument - an OpenXmlPackage represents a Word document.

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

Examples

The following example shows how to apply the "Heading3" style to the first paragraph in an existing word processing document. To run the code example, create a word-processing file and write some text in it. After you run the code example, examine the text in the file. You would notice that the style of the first paragraph is changed to “Heading3.”

using System;  
using System.Linq;  
using DocumentFormat.OpenXml.Packaging;  
using DocumentFormat.OpenXml.Wordprocessing;  

namespace WordProcessingEx  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            // Apply the Heading 3 style to a paragraph.   
            string fileName = @"C:\Users\Public\Documents\WordProcessingEx.docx";  
            using ( WordprocessingDocument myDocument = WordprocessingDocument.Open(fileName, true))  
            {  
                // Get the first paragraph.  
                Paragraph p = myDocument.MainDocumentPart.Document.Body.Elements<Paragraph>().First();  

                // If the paragraph has no ParagraphProperties object, create a new one.  
                if ( p.Elements<ParagraphProperties>().Count() == 0 )  
                    p.PrependChild<ParagraphProperties>(new ParagraphProperties());  

                // Get the ParagraphProperties element of the paragraph.  
                ParagraphProperties pPr = p.Elements<ParagraphProperties>().First();  

                // Set the value of ParagraphStyleId to "Heading3".  
                pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "Heading3" };  
            }  
            Console.WriteLine("All done. Press a key.");  
            Console.ReadKey();  
        }  
   }  
}  
Imports System  
Imports System.Linq  
Imports DocumentFormat.OpenXml.Packaging  
Imports DocumentFormat.OpenXml.Wordprocessing  

Module Module1  
    Sub Main()  
        ' Apply the Heading 3 style to a paragraph.   
        Dim fileName As String = "C:\Users\Public\Documents\WordProcessingEx.docx"  
        Using myDocument As WordprocessingDocument = WordprocessingDocument.Open(fileName, True)  
            ' Get the first paragraph.  
            Dim p As Paragraph = myDocument.MainDocumentPart.Document.Body.Elements(Of Paragraph)().First()  

            ' If the paragraph has no ParagraphProperties object, create a new one.  
            If p.Elements(Of ParagraphProperties)().Count() = 0 Then  
                p.PrependChild(Of ParagraphProperties)(New ParagraphProperties())  
            End If  

            ' Get the ParagraphProperties element of the paragraph.  
            Dim pPr As ParagraphProperties = p.Elements(Of ParagraphProperties)().First()  

            ' Set the value of ParagraphStyleId to "Heading3".  
            pPr.ParagraphStyleId = New ParagraphStyleId() With {.Val = "Heading3"}  
        End Using  
        Console.WriteLine("All done. Press a key.")  
        Console.ReadKey()  
    End Sub  
End Module  

Constructors

WordprocessingDocument()
Obsolete.

Creates a WordprocessingDocument.

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 WordprocessingDocument.

CustomFilePropertiesPart

Gets the CustomFilePropertiesPart of the WordprocessingDocument.

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 WordprocessingDocument.

DocumentType

Gets the type of the WordprocessingDocument.

ExtendedFilePropertiesPart

Gets the ExtendedFilePropertiesPart of the WordprocessingDocument.

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 WordprocessingDocument, only available in Office2021.

MainDocumentPart

Gets the MainDocumentPart of the WordprocessingDocument.

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 WordprocessingDocument.

RibbonAndBackstageCustomizationsPart

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

RibbonExtensibilityPart

Gets the RibbonExtensibilityPart of the WordprocessingDocument.

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 WordprocessingDocument.

WebExTaskpanesPart

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

Methods

AddAnnotation(Object)

Adds an object to the annotation list of this PartContainer.

(Inherited from OpenXmlPartContainer)
AddCoreFilePropertiesPart()

Adds a CoreFilePropertiesPart to the WordprocessingDocument.

AddCustomFilePropertiesPart()

Adds a CustomFilePropertiesPart to the WordprocessingDocument.

AddDigitalSignatureOriginPart()

Adds a DigitalSignatureOriginPart to the WordprocessingDocument.

AddExtendedFilePropertiesPart()

Adds a ExtendedFilePropertiesPart to the WordprocessingDocument.

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 WordprocessingDocument, this part is only available in Office2021.

AddMainDocumentPart()

Creates the MainDocumentPart and add it to this document.

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 WordprocessingDocument.

AddRibbonAndBackstageCustomizationsPart()

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

AddRibbonExtensibilityPart()

Adds a RibbonExtensibilityPart to the WordprocessingDocument.

AddThumbnailPart(String)

Adds a ThumbnailPart to the WordprocessingDocument.

AddThumbnailPart(ThumbnailPartType)

Adds a ThumbnailPart to the WordprocessingDocument.

AddWebExTaskpanesPart()

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

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(WordprocessingDocumentType)

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, WordprocessingDocumentType, Boolean)

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

Create(Package, WordprocessingDocumentType)

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

Create(Stream, WordprocessingDocumentType, Boolean)

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

Create(Stream, WordprocessingDocumentType)

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

Create(String, WordprocessingDocumentType, Boolean)

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

Create(String, WordprocessingDocumentType)

Creates a new instance of the WordprocessingDocument 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, Boolean)

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

CreateFromTemplate(String)

Creates an editable WordprocessingDocument from a template, opened on a MemoryStream with expandable capacity. The template will be attached to the WordprocessingDocument.

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 WordprocessingDocument from an XDocument in Flat OPC format.

FromFlatOpcDocument(XDocument, Stream, Boolean)

Creates a new instance of WordprocessingDocument from an XDocument in Flat OPC format.

FromFlatOpcDocument(XDocument, String, Boolean)

Creates a new instance of WordprocessingDocument from an XDocument in Flat OPC format.

FromFlatOpcDocument(XDocument)

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

FromFlatOpcString(String, Package)

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

FromFlatOpcString(String, Stream, Boolean)

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

FromFlatOpcString(String, String, Boolean)

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

FromFlatOpcString(String)

Creates a new instance of WordprocessingDocument 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 WordprocessingDocument class from the specified package.

Open(Package)

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

Open(Stream, Boolean, OpenSettings)

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

Open(Stream, Boolean)

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

Open(String, Boolean, OpenSettings)

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

Open(String, Boolean)

Creates a new instance of the WordprocessingDocument 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.

AddParagraphIdFeature(WordprocessingDocument, ParagraphIdOptions)

Add the paragraph id feature if not already registered.

AddParagraphIdGeneratorFeature(WordprocessingDocument)

Adds a IParagraphIdGeneratorFeature if not already available.

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.

AddSharedParagraphIdFeature(WordprocessingDocument)

Registers a document for a shared paragraph id collection.

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.

Applies to