Training
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
mailto:person@
)OpenXmlElement
(#1476)IFeatureCollection
can now be enumerated and has a helpful debug view to see what features are registered (#1452)DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main
namespaceDocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main
namespaceDocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021
namespaceIDisposableFeature
is now a part of the framework package and is available by default on a package or part.OpenXmlPackage.Package
to DocumentFormat.OpenXml.Packaging.IPackage
instead of System.IO.Packaging.Package
with a similar API surfaceEnumValue<T>
now is used to box a struct rather than a System.Enum
. This allows us to enable behavior on it without resorting to reflectionAddImagePart
) are now implemented as extension methods off of a new marker interface ISupportedRelationship<T>
ImagePartType
) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new PartTypeInfo
struct that will contain the necessary information.OpenXmlPackage.CanSave
is now an instance property (#1307)OpenXmlSettings.RelationshipErrorHandlerFactory
and associated types and replaced with a built-in mechanism to enable thisIdPartPair
is now a readonly struct rather than a classPartExtensionProvider
to IPartExtensionFeature
and reduced its surface area to only two methods (instead of a full Dictionary<,>
). The property to access this off of OpenXmlPackage
has been removed, but may be accessed via Features.Get<IPartExtensionFeature>()
if needed.OpenXmlPart
/OpenXmlContainer
/OpenXmlPackage
and derived types now have internal constructors (these had internal abstract methods so most likely weren't subclassed externally)OpenXmlElementList
is now a struct that implements IEnumerable<OpenXmlElement>
and IReadOnlyList<OpenXmlElement>
where available (#1429)OpenXmlPartReader
are available now for each package type (i.e. WordprocessingDocumentPartReader
, SpreadsheetDocumentPartReader
, PresentationDocumentPartReader
), and the previous TypedOpenXmlPartReader
has been removed. (#1403)Model3D
now represents the modified xml element tag name am3d.model3d
(Previously am3d.model3D
)DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo
DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid
SchemaAttrAttribute
(#1316)ChildElementInfoAttribute
(#1316)OpenXmlSimpleType.TextValue
. This property was never meant to be used externally (#1316)readonly
(#1282)OpenXmlPackage.Close
in favor of Dispose
(#1373)OpenXmlPackage.SaveAs
in favor of Clone
(#1376)OpenXmlSimpleType.TextValue
as obsolete. This property was never meant to be used externally (#1284)OpenXmlPackage.Package
as obsolete. This will be an implementation detail in future versions and won't be accessible (#1306)OpenXmlPackage.Close
as obsolete. This will be removed in a later release, use Dispose instead (#1371)OpenXmlPackage.SaveAs
as obsolete as it will be removed in a future version (#1378)OpenXmlPart.UnloadRootElement
that will unload the root element if it is loaded (#1126)./samples
directory (#1101, #1087)DocumentFormat.OpenXml.Features
and DocumentFormat.OpenXml.Linq
. See documentation in repo for additional details.FileFormatVersions.Microsoft365
for new subscription model types and constraints (#1097).model/gltf.binary
(#1069)new CellValue(bool)
values (#1070)FileFormatVersions
enumFeatures
property to OpenXmlPartContainer
and OpenXmlElement
to enable a per-part or per-document state storageXmlPath
(#1013)TextReader
when creating an XmlReader
under certain circumstances (#940)OpenXmlPartReader
and OpenXmlReader.Create(...)
to ignore whitespace (#857)HexBinaryValue.TryGetBytes(...)
and HexBinaryValue.Create(byte[])
to manage the encoding and decoding of bytes (#867)IEquatable<IdPartPair>
on IdPartPair
to fix equality implementation there and obsoleted setters (#871)CellValue
constructors to use invariant cultures (#903)UniqueAttributeValueConstraint
is involved (#924)CellValue
may validate incorrectly for boolean values (#890)OpenSettings.RelationshipErrorHandlerFactory
creates invalid XML if the resulting URI is smaller than the input (#883)OpenXmlCompositeElement
instances could not be set to null to remove element (#850)OpenXmlElement.RawOuterXml
to properly set null values without throwing (#818)OpenSettings.RelationshipErrorHandlerFactory
to provide a way to handle URIs that break parsing documents with malformed links (#793)OpenXmlCompositeElement.AddChild(OpenXmlElement)
to add children in the correct order per schema (#774)SmartTagClean
and SmartTagId
in place of SmtClean
and SmtId
(#747)OpenXmlValidator.Validate(..., CancellationToken)
overrides to allow easier cancellation of long running validation on .NET 4.0+ (#773)CellValue
to take decimal
, double
, and int
, as well as convenience methods to parse them (#782)CellType
for numbers and date formats (#782)OpenXmlReader.GetLineInfo()
to retrieve IXmlLineInfo
of the underlying reader if available (#804)SchemaAttrAttribute
attributes back for backwards compatibility (#825)System.IO.Packaging
on .NET 4.6 builds (#774)IndexReferenceConstraint
and ReferenceExistConstraint
are involved (#763)CellValue
to only include three most signficant digits on second fractions to correct issue loading dates (#741)OpenXmlPartContainer.DeletePart
no longer throws an exception if there isn't a match for the identifier given (#740)AttributeRequiredConditionToValue
semantic constraint where validation could fail on correct input (#746)FileFormatVersions.2019
enum (#695)ChartSpace
and chart elements for the new 2016 namespaces. This allows the connecting pieces for building a chart part with chart styles like "Sunburst" (#687).OpenXmlElementFunctionalExtensions.With(...)
extension methods, which offer flexible means for constructing OpenXmlElement
instances in the context of pure functional transformations (#679)CompatSettingNameValues
values: UseWord2013TrackBottomHyphenation
, AllowHyphenationAtTrackBottom
, and AllowTextAfterFloatingTableBreak
(#706)OpenXmlPartContainer.TryGetPartById
to enable child part retrieval without exception if it does not exist (#714)OpenXmlPackage.StrictRelationshipFound
property that indicates whether this package contains Transitional relationships converted from Strict (#716)OpenXmlAttribute
as obsolete as structs should not have mutable state (#698)OpenXmlElement
is initialized with outer XML (#684, #692)FileFormatVersion.Office2016
, ExtendedChartPart
and other new schema elements (#586)IXmlNamespaceResolver
from XmlPath
instead of formatted list of strings to expose namespace/prefix mapping (#536)IComparable<T>
and IEquatable<T>
on OpenXmlComparableSimpleValue
to allow comparisons without boxing (#550)OpenXmlPackage.RootPart
to easily access the root part on any package (#661)ToFlatOpcDocument
, ToFlatOpcString
, FromFlatOpcDocument
, and FromFlatOpcString
to correctly process Alternative Format Import Parts, or "altChunk parts" (#659)Marshal.SizeOf<T>
with a struct that contains auto-implemented properties (#569)ListValue
now implements IEnumerable<T>
(#385)WebExtension.Frozen
and obsoleted misspelled Fronzen
property (#460)OpenXmlPackage.CanSave
property that indicates whether a platform supports saving without closing the package (#468)EnumValue
and ListValue
) now implement IComparable<T>
and IEquatable<T>
(#487)EnumSimpleType
parsing was improved and uses less allocations and caches for future use (#408)OpenXmlPackage.Save
on .NET Framework, the package is now flushed to the stream (#468)System.IO.Packaging
to 4.5.0 which fixes some issues on Xamarin platforms as well as minimizes dependencies on .NET FrameworkSystem.IO.Packaging
version 4.4.0 which fixes some consistency with .NET Framework in opening packages.System.IO.Packaging
that fixes some serious (but exceptional) bugs found in the WindowsBase implementationTraining
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Documentation
Use the Open XML SDK to programmatically create Office Word, Excel, and PowerPoint documents, and manipulate their content.
Use the Open XML SDK to programmatically create Office Word, Excel, and PowerPoint documents, and manipulate their content.
About the Open XML SDK for Office
Use the Open XML SDK to programmatically create Office Word, Excel, and PowerPoint documents, and manipulate their content.