Skip to content

Releases: dotnet/Open-XML-SDK

[3.2.0]

22 Nov 18:42
89cd570
Compare
Choose a tag to compare

Added

  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotDynamicArrays namespace

Changed

  • Updated Nuget badge on README

Fixed

  • Fixed issue where a disposed object (DeflateStream) cannot be accessed after recovering from malformed url (#1802)
  • Fixed issue with relationships not being created when cloning Flat OPC (#1814)
  • Fixed issue with corrupt files remaining locked after attempting to open with WordprocessingDocument.Open (#1681)
  • Fixed issue with changes not applied after .Save() (#1771)
  • Fixed AddWorkbookPart throws exception if no main part is available (#1745)
  • Fixed issue with base classes not included with LINQ generation (#1838)

Thanks to the following for their contributions:

@WeihanLi

[3.1.1]

15 Oct 19:02
f9e6ad7
Compare
Choose a tag to compare

Fixed

  • Updated System.IO.Packaging and other dependencies (#1794, #1795, #1796, #1782, #1808)
  • Fixed add c16:uniqueId to several chart complex types (#1762)
  • Fixed rather than in the documentation comments (#1775)

[3.1.0]

30 Jul 20:18
522f9f3
Compare
Choose a tag to compare

Added

  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotAutoRefresh namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotDynamicArrays namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.DataSourceVersioning namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.ExternalCodeService namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms namespace
  • Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.Pivot2023Calculation namespace

Fixed

  • Fixed issue where OpenXmlUnknownElement is returned instead of CommentPropertiesExtension (#1751)
  • Fixed issue where OpenXmlWriter is unable to write SharedStringTablePart (#1755)

[3.0.2]

14 Mar 21:22
8ed4df2
Compare
Choose a tag to compare

Fixed

  • Fixed issue where temp files were shareable and not deleted on close (#1658)

[3.0.1]

09 Jan 19:00
77bd9e9
Compare
Choose a tag to compare

Fixed

  • Fixed issue where document type would not be correct unless content type was checked first (#1625)
  • Added check to only seek on packages where it is supported (#1644)
  • If a malformed URI is encountered, the exception is now the same as v2.x (OpenXmlPackageException with an inner UriFormatException) (#1644)

[3.0.0]

15 Nov 16:57
82564b4
Compare
Choose a tag to compare

Added

  • Packages can now be saved on .NET Core and .NET 5+ if constructed with a path or stream (#1307).
  • Packages can now support malformed URIs (such as relationships with a URI such as mailto:person@)
  • Introduce equality comparers for OpenXmlElement (#1476)
  • IFeatureCollection can now be enumerated and has a helpful debug view to see what features are registered (#1452)
  • Add mime types to part creation (#1488)
  • DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main namespace
  • DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main namespace
  • DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace

Changed

  • When validation finds incorrect part, it will now include the relationship type rather than a class name
  • IDisposableFeature is now a part of the framework package and is available by default on a package or part.

Breaking Changes

  • .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.
  • Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.
  • Changed type of OpenXmlPackage.Package to DocumentFormat.OpenXml.Packaging.IPackage instead of System.IO.Packaging.Package with a similar API surface
  • EnumValue<T> now is used to box a struct rather than a System.Enum. This allows us to enable behavior on it without resorting to reflection
  • Methods on parts to add child parts (i.e. AddImagePart) are now implemented as extension methods off of a new marker interface ISupportedRelationship<T>
  • Part type info enums (i.e. 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)
  • Removed OpenXmlSettings.RelationshipErrorHandlerFactory and associated types and replaced with a built-in mechanism to enable this
  • IdPartPair is now a readonly struct rather than a class
  • Renamed PartExtensionProvider 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)
  • Individual implementations of OpenXmlPartReader are available now for each package type (i.e. WordprocessingDocumentPartReader, SpreadsheetDocumentPartReader, PresentationDocumentPartReader), and the previous TypedOpenXmlPartReader has been removed. (#1403)
  • Reduced unnecessary target frameworks for packages besides DocumentFormat.OpenXml.Framework (#1471)
  • Changed some spelling issues for property names (#1463, #1444)
  • Model3D now represents the modified xml element tag name am3d.model3d (Previously am3d.model3D)
  • Removed DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo
  • Removed DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid
  • Removed unused SchemaAttrAttribute (#1316)
  • Removed unused ChildElementInfoAttribute (#1316)
  • Removed OpenXmlSimpleType.TextValue. This property was never meant to be used externally (#1316)
  • Removed obsolete validation logic from v1 of the SDK (#1316)
  • Removed obsoleted methods from 2.x (#1316)
  • Removed mutable properties on OpenXmlAttribute and marked as readonly (#1282)
  • Removed OpenXmlPackage.Close in favor of Dispose (#1373)
  • Removed OpenXmlPackage.SaveAs in favor of Clone (#1376)

[3.0.0-beta3]

05 Sep 22:39
b2a14c1
Compare
Choose a tag to compare
[3.0.0-beta3] Pre-release
Pre-release

Added

  • Introduce equality comparers for OpenXmlElement (#1476)
  • IFeatureCollection can now be enumerated and has a helpful debug view to see what features are registered (#1452)
  • Add mime types to part creation (#1488)

Breaking changes

  • Reduced unnecessary target frameworks for packages besides DocumentFormat.OpenXml.Framework (#1471)
  • Changed some spelling issues for property names (#1463, #1444)

[v3.0.0-beta2]

07 Jun 20:42
a05cb78
Compare
Choose a tag to compare
[v3.0.0-beta2] Pre-release
Pre-release

Breaking Changes

  • OpenXmlElementList is now a struct that implements IEnumerable<OpenXmlElement> and IReadOnlyList<OpenXmlElement> (where available)
  • Individual implementations of OpenXmlPartReader are available now for each package type (i.e. WordprocessingDocumentPartReader, SpreadsheetDocumentPartReader, PresentationDocumentPartReader), and the previous TypedOpenXmlPartReader has been removed.

[3.0.0-beta1]

21 Apr 17:35
c27e4c0
Compare
Choose a tag to compare
[3.0.0-beta1] Pre-release
Pre-release

Added

  • Packages can now be saved on .NET Core and .NET 5+ if constructed with a path or stream (#1307).
  • Packages can now support malformed URIs (such as relationships with a URI such as mailto:person@)

Changed

  • When validation finds incorrect part, it will now include the relationship type rather than a class name

Removed

  • .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.
  • Removed unused SchemaAttrAttribute
  • Removed unused ChildElementInfoAttribute
  • Removed OpenXmlSimpleType.TextValue. This property was never meant to be used externally
  • Removed obsolete validation logic from v1 of the SDK
  • Removed obsoleted methods from 2.x
  • Removed mutable properties on OpenXmlAttribute and marked as readonly
  • Removed OpenXmlPackage.Close in favor of Dispose (#1373)
  • Removed OpenXmlPackage.SaveAs in favor of Clone (#1376)
  • Removed OpenXmlPackage.Package property. A OpenXmlPackage is now backed by an internal (for now) type IPackage instead of System.IO.Packaging.Package

Breaking change

  • Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.
  • EnumValue<T> now is used to box a struct rather than a System.Enum. This allows us to enable behavior on it without resorting to reflection
  • Methods on parts to add child parts (i.e. AddImagePart) are now implemented as extension methods off of a new marker interface ISupportedRelationship<T>
  • Part type info enums (i.e. 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)
  • Removed OpenXmlSettings.RelationshipErrorHandlerFactory and associated types and replaced with a built-in mechanism to enable this
  • IdPartPair is now a readonly struct rather than a class
  • IDisposableFeature is now a part of the framework package and is available by default on a package or part.
  • Renamed PartExtensionProvider 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)

[2.20.0]

05 Apr 23:11
a873d3f
Compare
Choose a tag to compare

Added

  • Added DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula namespace
  • Added DocumentFormat.OpenXml.Office.Word.Y2023.WordML.Word16DU namespace

Changed

  • Marked OpenXmlSimpleType.TextValue as obsolete. This property was never meant to be used externally (#1284)
  • Marked OpenXmlPackage.Package as obsolete. This will be an implementation detail in future versions and won't be accessible (#1306)
  • Marked OpenXmlPackage.Close as obsolete. This will be removed in a later release, use Dispose instead (#1371)
  • Marked OpenXmlPackage.SaveAs as obsolete as it will be removed in a future version (#1378)

Fixed

  • Fixed incorrect file extensions for vbaProject files (#1292)
  • Fixed incorrect file extensions for ImagePart (#1305)
  • Fixed incorrect casing for customXml (#1351)
  • Fixed AddEmbeddedPackagePart to allow correct extensions for various content types (#1388)

Thanks to the following for their contributions:

@Asbjoedt