DocumentFormat.OpenXml.Linq 3.1.0

dotnet add package DocumentFormat.OpenXml.Linq --version 3.1.0                
NuGet\Install-Package DocumentFormat.OpenXml.Linq -Version 3.1.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的版本 Install-Package
<PackageReference Include="DocumentFormat.OpenXml.Linq" Version="3.1.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中,以引用程序包。
paket add DocumentFormat.OpenXml.Linq --version 3.1.0                
#r "nuget: DocumentFormat.OpenXml.Linq, 3.1.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中,以引用程序包。
// Install DocumentFormat.OpenXml.Linq as a Cake Addin
#addin nuget:?package=DocumentFormat.OpenXml.Linq&version=3.1.0

// Install DocumentFormat.OpenXml.Linq as a Cake Tool
#tool nuget:?package=DocumentFormat.OpenXml.Linq&version=3.1.0                

Open XML SDK

[!NOTE]

v3.0.0 重构并解决了一些技术债务,尽可能地保留了源兼容性。您应该能够更新您的包并重新编译,只进行有限的更改。然而,二进制兼容性并非目标,并且会打破某些记录中的更改。引入此类更改的 PR 会带有 breaking-change 标签,并被添加到列表中,以帮助迁移到 v3.0.0。

请参阅 v3.0.0 里程碑 了解包含的问题和 PR。有关讨论,请加入我们 此问题

[!IMPORTANT] 自 2024 年 4 月 2 日起,CI 推送 URL 已更改。如果使用 CI 构建,请更新到新 URL。

Downloads Build Status Backend Status

Open XML SDK 提供了用于处理 Office Word、Excel 和 PowerPoint 文档的工具。它支持以下场景:

  • 高性能生成文字处理文档、电子表格和演示文稿。
  • 文档修改,如添加、更新和删除内容和元数据。
  • 使用正则表达式搜索和替换内容。
  • 将文件拆分成多个文件,或将多个文件合并成一个文件。
  • 更新 Word/PowerPoint 中图表的缓存数据和内嵌电子表格。

目录

Open XML SDK 的官方发布 NuGet 包可在 NuGet.org 上找到

下载 预发布
DocumentFormat.OpenXml.Framework NuGet NuGet
DocumentFormat.OpenXml NuGet NuGet
DocumentFormat.OpenXml.Linq NuGet NuGet
DocumentFormat.OpenXml.Features NuGet NuGet

每日构建

Open XML SDK 最新构建的 NuGet 包可作为 Azure blob 上的自定义 feed 获取。此处的稳定版本将与 NuGet 一致。必须设置一个类似于以下的 NuGet.config 文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="OpenXmlCI" value="https://ooxml.blob.core.windows.net/feed/index.json" />
  </packageSources>
</configuration>

有关最新更改,请参阅 变更日志

框架支持

该包目前支持以下目标

  • .NET Framework 3.5、4.0、4.6
  • .NET Standard 2.0
  • .NET 6.0

有关平台支持的详细信息,包括其他运行时(如 Mono 和 Unity)等,请参阅 https://docs.microsoft.com/en-us/dotnet/standard/net-standard 上的文档。

已知问题

  • 在 .NET Core 和 .NET 5 及以上版本中,ZIP 包没有流式传输数据的方式。因此,在某些情况下工作集可能会爆炸。这是一个 已知问题
  • 在 .NET Framework 中,在特定情况下可能会引发 IsolatedStorageException。这通常发生在在一个没有足够证据的 AppDomain 环境中操作大文档时。一个带有解决方案的示例在此处可用 此处

文档

有关官方文档,请参阅 Open XML SDK

如果您有如何操作的问题

  • Open XML SDK 2.5 Productivity Tool:该工具提供与 Open XML SDK 2.5 兼容的查看和代码生成。
  • Open XML Powertools:此工具提供各种 Open XML 场景的示例代码和指南。
  • ClosedXml:此库在 OpenXml SDK 之上提供了一个简化的对象模型,用于操作和创建 Excel 文档。
  • OfficeIMO:此库在 OpenXml SDK 之上提供了一个简化的对象模型,用于操作和创建 Word 文档。
  • Serialize.OpenXml.CodeGen:这是一个工具,可以将 OpenXml 文档转换为创建它所需的 .NET 代码。
  • Html2OpenXml:这是一个工具,可以接受 HTML 并将其转换为 OpenXml 文档。
  • DocxToSource:这是一个工具,旨在替代旧的 OpenXML SDK Productivity Tool。
  • OOXML Viewer:这是一个Visual Studio Code插件,用于查看和编辑Office开源XML文件的xml部分,以及在外部程序保存时查看OOXML部分的旧版本之间的差异。在VS Code扩展选项卡中搜索“OOXML”,或从此处下载:VS Code市场
  • ShapeCrawler:这个库在OpenXml SDK之上提供了一个简化的对象模型,以操纵PowerPoint文档。
  • OOXML Validator:这是VS Code扩展,用于验证Office开源XML文件。在VS Code扩展选项卡中搜索“OOXML”,或从此处下载:VS Code市场

如何贡献项目?

我们欢迎贡献!世界各地有许多人为使此项目变得更好做出了贡献。

报告安全问题和安全漏洞

应通过电子邮件私下报告安全问题和安全漏洞,发送至微软安全响应中心(MSRC)[email protected]。您应在24小时内收到回复。如果由于某种原因您没收到回复,请通过电子邮件跟进以确保我们已收到您的原始信息。更多信息,包括MSRC PGP密钥,可在安全技术中心找到。

.NET基金会

Open XML SDK是.NET Foundation的项目。

本项目已采纳贡献约定中定义的行为准则,以阐明我们社区的期望行为。更多信息,请查阅.NET Foundation行为准则

许可证

Open XML SDK采用MIT许可证。

产品 兼容性和附加的 computed 目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net35 兼容。 net40 兼容。 net403 已计算。 net45 已计算。 net451 已计算。 net452 已计算。 net46 兼容。 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard

NuGet 包 (5)

显示依赖于 DocumentFormat.OpenXml.Linq 的前 5 个 NuGet 包

下载
ShapeCrawler

ShapeCrawler(原名 SlideDotNet)是一个用于处理 PowerPoint 演示的 .NET 库。它提供流畅的 API 来处理幻灯片而无需安装 Microsoft Office。该库在 Open XML SDK 上提供简化的对象模型,用于操作 PowerPoint 文档,无需任何 COM+ 或 COM 兼容层。

OpenXMLOffice.Global

这是一个 OpenXML-Office Common 包。包含共享组件和部分。

Archsheerary

存档电子表格库

lpains.documorph

包描述

TJC.Cyclops.OpenXml

openxml相关封装

GitHub 仓库

该软件包没有被任何流行的GitHub仓库使用。

版本 下载 最后更新
3.1.0 347 7/30/2024
3.0.2 11,926 3/14/2024
3.0.1 3,561 1/9/2024
3.0.0 40,717 11/15/2023
3.0.0-beta0003 364 9/5/2023
3.0.0-beta0002 280 6/16/2023
2.20.0 82,865 4/6/2023
2.20.0-beta0012 165 4/6/2023
2.19.0 11,095 12/14/2022
2.18.0 56,644 9/7/2022
2.17.1 15,749 6/30/2022
2.16.0 7,342 3/15/2022
2.15.0 3,669 1/4/2022

# 更新日志

本项目所有显著变更都将记录在此文件中。

格式基于[保持更新日志](http://keepachangelog.com/en/1.0.0/)
并且本项目遵循[语义化版本控制](http://semver.org/spec/v2.0.0.html)。

## [3.0.2] - 2024-03-14

### 修复

- 修复了临时文件可共享且在关闭时未被删除的问题(#1658)

## [3.0.1] - 2024-01-09

### 修复

- 修复了除非首先检查内容类型,否则文档类型将不正确的问题(#1625)
- 添加了对支持包的检查(#1644)
- 如果遇到格式不正确的URI,现在的异常与v2.x相同(`OpenXmlPackageException`带有内部的`UriFormatException`)(#1644)

## [3.0.0] - 2023-11-15

### 新增

- 现在可以通过路径或流构造,在.NET Core和.NET 5+上保存软件包(#1307)
- 现在软件包可以支持格式不正确的URI(例如`mailto:`之类的URI的相关关系)
- 引入了`OpenXmlElement`的相等比较器(#1476)
- `IFeatureCollection`现在可以枚举,并提供一个有用的调试视图以查看注册了哪些功能(#1452)
- 在创建部分时添加了MIME类型(#1488)
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main` 命名空间
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main` 命名空间
- `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021` 命名空间

### 变更

- 当验证发现不正确的部分时,现在将包括关系类型而不是类名
- `IDisposableFeature`现在成为框架软件包的一部分,并在软件包或部分中默认可用

### breaking changes(重大变更)

- .NET Standard 1.3不再是支持的平台。最低支持的.NET Standard是2.0
- 核心基础设施现在包含在一个新的软件包DocumentFormat.OpenXml.Framework中。类型化的类仍在DocumentFormat.OpenXml中。这意味着您可以引用DocumentFormat.OpenXml并继续编译相同的类型,但如果要创建更小的软件包,则可以仅依靠框架软件包
- 将`OpenXmlPackage.Package`的类型从`System.IO.Packaging Package`更改为与相似API表面的`DocumentFormat.OpenXml.Packaging.IPackage`
- `EnumValue`现在用于将结构装箱而不是`System.Enum`。这允许我们启用它上面的行为而无需使用反射
- 部分上的添加子部分的方法(例如`AddImagePart`)现在作为新标记接口`ISupportedRelationship`的扩展方法实现
- 部分类型信息枚举(例如`ImagePartType`)现在不再是一个枚举,而是一个静态类,用于将已知部分类型作为结构暴露。现在可以以新的`PartTypeInfo`结构作为必要的包含所有必要信息的名为新内容类型/扩展对的方法来调用任意定义新内容类型/扩展对的方法
- `OpenXmlPackage.CanSave`现在是一个实例属性(#1307)
- 删除了`OpenXmlSettings.RelationshipErrorHandlerFactory`及其相关类型,并替换为一个内置机制以启用此功能
- `IdPartPair`现在是一个只读结构而不是类
- 将`PartExtensionProvider`重命名为`IPartExtensionFeature`并减小了其表面面积,仅只包含两个方法(而不是完整的`Dictionary<,>`)。从`OpenXmlPackage`访问此属性的属性已被删除,但在需要时可以通过`Features.Get()`访问。
- `OpenXmlPart`/`OpenXmlContainer`/`OpenXmlPackage`及其派生类型现在具有内部构造函数(这些具有内部抽象方法,因此很可能在外部没有被子类化)
- `OpenXmlElementList`现在是一个实现了`IEnumerable`和`IReadOnlyList`的结构,在可用的情况下(#1429)
- 现在每个软件包类型都有一个各自的`OpenXmlPartReader`实现(例如`WordprocessingDocumentPartReader`、`SpreadsheetDocumentPartReader`、`PresentationDocumentPartReader`),以及以前的`TypedOpenXmlPartReader`已被删除。(#1403)
- 优化了除DocumentFormat.OpenXml.Framework之外的所有包装的目标框架(#1471)
- 修正了一些属性名称的拼写错误(#1463, #1444)
- `Model3D`现在代表修改后的xml元素标签名`am3d.model3d`(之前为`am3d.model3D`)
- 删除了`DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo`
- 删除了`DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid`
- 删除了未使用的`SchemaAttrAttribute`(#1316)
- 删除了未使用的`ChildElementInfoAttribute`(#1316)
- 删除了`OpenXmlSimpleType.TextValue`。此属性从未打算用于外部使用(#1316)
- 从SDK v1中删除了过时的验证逻辑(#1316)
- 从2.x中删除了过时的方法(#1316)
- 从OpenXmlAttribute删除了可变属性并将其标记为`readonly`(#1282)
- 使用`Dispose`代替`OpenXmlPackage.Close`(#1373)
- 使用`Clone`代替`OpenXmlPackage.SaveAs`(#1376)

## [2.20.0]

### 新增

- 添加了DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula命名空间
- 添加了DocumentFormat.OpenXml.Office.Word.Y2023.WordML.Word16DU命名空间

### 变更

- 将`OpenXmlSimpleType.TextValue`标记为过时。此属性从未打算用于外部使用(#1284)
- 将`OpenXmlPackage.Package`标记为过时。这将成为未来版本中的实现细节,并且不可访问(#1306)
- 将`OpenXmlPackage.Close`标记为过时。这将在未来版本中删除,请使用Dispose代替(#1371)
- 将`OpenXmlPackage.SaveAs`标记为过时,因为它将在未来版本中删除(#1378)

### 修复

- 修复了vbaProject文件的文件扩展名错误(#1292)
- 修复了ImagePart的文件扩展名错误(#1305)
- 修复了customXml的不正确大小写(#1351)
- 修复了添加嵌入式包部分的AddEmbeddedPackagePart以允许正确扩展各种内容类型(#1388)

## [2.19.0] - 2022-12-14

### 新增

- .NET 6目标,支持裁剪(#1243, #1240)
- 添加了DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData命名空间
- 添加了DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command命名空间
- 添加了DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command命名空间
- 将Child RichDataPivotCacheGuid添加到DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition

### 修复

- 在可能的情况下删除了反射的使用(#1240)
- 修复了在克隆或创建副本时某些URI可能会更改的问题(#1234)
- 修复了FlatOpc生成中的问题,该问题在.NET 6+上不会读取整个流(#1232)
- 修复了恢复的关系不会正确加载的问题(#1207)

## [2.18.0] 2022-09-06

### 新增

- 添加了DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021命名空间(#1196)
- 向DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet添加了durableId属性(#1196)
- 添加了几种基类用于泛型元素、部分和包(#1185)

### 变更

- 将LICENSE.md调整为符合.NET Foundation要求(#1194)
- 对内部服务进行了多项改进以优化性能

## [2.17.1] - 2022-06-28

### 删除

- 删除了预览命名空间DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions,因为这个命名空间目前会创建无效文档。

### 修复

- 恢复了PowerPointCommentPart到PresentationPart的关系。

### 过时

- PowerPointCommentPart和PresentationPart之间的关系已过时,将在未来版本中删除。

## [2.17.0] - 未发布

### 新增

- 添加了DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions命名空间(#1151)
- 添加了DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo命名空间(#1151)

### 修复

- 将PowerPointCommentPart关系移动到SlidePart(#1137)

### 更新

- 为了EnablePackageValidation,移除了公共API分析器(#1154)

## [2.16.0] - 2022-03-14

### 新增

- 添加了`OpenXmlPart.UnloadRootElement`方法,如果已加载根元素,则会卸载该根元素(#1126)

### 更新

- 将架构代码生成移动到SDK项目,使用C#代码生成器

感谢以下人员的贡献

@f1nzer

## [2.15.0] - 2021-12-16

### 新增

- 在`./samples`目录中添加了用于强类型类和Linq-to-XML的示例(#1101, #1087)
- 在`DocumentFormat.OpenXml.Features`和`DocumentFormat.OpenXml.Linq`中提供了一些额外功能的库。有关更多详细信息,请参阅存储库中的文档。
- 添加了支持获取图像部分类型的扩展方法(#1082)
- 为新的订阅模式类型和约束添加了生成的类和 `FileFormatVersions.Microsoft365` (#1097)。

### 修复

- 修复了 changed mime type `model/gltf.binary` 的问题(#1069)
- DocumentFormat.OpenXml.Office.Drawing.ShapeTree 只在 Office 2010 及以上版本中可用,不在 2007 版中。
- 正确序列化 `new CellValue(bool)` 值(#1070)
- 已更新已知命名空间,现在它们通过仓库源生成器生成(#1092)
- 关于 `FileFormatVersions` 枚举的一些文档问题

感谢以下人员的贡献

@ThomasBarnekow
@stevenhansen
@JaimeStill
@jnyrup

## [2.14.0] - 2021-10-28

### 新增

- 为 Office 2021 类型添加了生成的类和约束(#1030)
- 为 `OpenXmlPartContainer` 和 `OpenXmlElement` 添加了 `Features` 属性,以启用每个部分或每个文档的状态存储
- 添加了 `XmlPath` 的公共构造函数(#1013)
- 添加了富数据类型的部分(#1002)
- 添加了生成唯一段落id的方法(#1000)

感谢以下人员的贡献

@rmboggs
@ThomasBarnekow

## [2.13.1] - 2021-08-17

### 修复

- 修复了一些错误地定义的 nullability 注释(#953、#955)
- 修复了在某些情况下创建 `XmlReader` 时会释放 `TextReader` 的问题(#940)
- 修复了一个文档类型问题(#937)
- 修复了向数据部分添加额外子元素的问题(#934)
- 将一些通用的文档条目替换为有价值的注释(#992)
- 修复了在 AddDataPartRelationship 中的回归问题(#954)

感谢以下人员的贡献

@ThomasBarnekow
@sorensenmatias
@lklein53
@lindexi

## [2.13.0] - 2021-05-13

### 新增

- 添加了额外的O19类型以匹配开放规范(#916)
- 为 Office 2019 类型添加了生成的类和约束(#882)
- 添加了 nullability 属性(#840、#849)
- 为 `OpenXmlPartReader` 和 `OpenXmlReader.Create(...)` 添加了重载来忽略空白(#857)
- 添加了 `HexBinaryValue.TryGetBytes(...)` 和 `HexBinaryValue.Create(byte[])` 来管理字节的编码和解码(#867)
- 在 `IdPartPair` 上实现了 `IEquatable` 以修复那里的等价性实现并弃用设置器(#871)

### 修复

- 修复了 `CellValue` 构造函数的序列化,以使用不变的文化(#903)
- 修复了解析以允许数字单元格值的指数(#901)
- 修复了涉及 `UniqueAttributeValueConstraint` 时的性能瓶颈(#924)

### 过时

- 弃用了 Office2013.Word.Person.Contact 属性。它不再保持,将在未来的版本中删除(#912)

感谢以下人员的贡献

@lklein53
@igitur

## [2.12.3] - 2021-02-24

### 修复

- 修复了 `CellValue` 对于布尔值可能验证错误的问题(#890)

## [2.12.2] - 2021-02-16

### 修复

- 修复了在 `OpenSettings.RelationshipErrorHandlerFactory` 中,如果结果URI小于输入时创建无效XML的问题(#883)

## [2.12.1] - 2021-01-11

### 修复

- 修复了在 `OpenXmlCompositeElement` 实例上设置属性为null以删除元素的问题(#850)
- 修复了 `OpenXmlElement.RawOuterXml` 在不抛出异常的情况下正确设置null值(#818)
- 允许重写所有损坏的URI,无论目标值如何(#835)

## [2.12.0] - 2020-12-09

### 新增

- 添加了 `OpenSettings.RelationshipErrorHandlerFactory` 以提供处理损坏链接的文档中解析损坏的URI的方法(#793)
- 添加了 `OpenXmlCompositeElement.AddChild(OpenXmlElement)` 以根据模式按正确顺序添加子元素(#774)
- 用 `SmartTagClean` 和 `SmartTagId` 替换了 `SmtClean` 和 `SmtId` (#747)
- 添加了对 `OpenXmlValidator.Validate(..., CancellationToken)` 的重载,以允许在 .NET 4.0+ 上更容易地取消长时间运行的验证(#773)
- 为 `CellValue` 添加了重载,以接受 `decimal`、`double` 和 `int`,以及解析它们的便利方法(#782)
- 添加了对数字和日期格式 `CellType` 的验证(#782)
- 添加了 `OpenXmlReader.GetLineInfo()` 来检索可用的 `IXmlLineInfo` 的底层读取器(#804)

### 修复

- 修复了如果文档包含SVG文件则无法作为FlatOPC保存时抛出的异常(#822)
- 添加 `SchemaAttrAttribute` 属性以支持向后兼容(#825)

### 删除

- 在 .NET 4.6 构建中删除了对 `System.IO.Packaging` 的显式引用(#774)

## [2.11.3] - 2020-07-17

### 修复

- 修复了当 `IndexReferenceConstraint` 和 `ReferenceExistConstraint` 涉及时的性能瓶颈(#763)
- 固定了`CellValue`,使其只包含第二分数的最小三个有效数字,以修正加载日期的问题(#741)
- 修复了一些可能导致验证错误索引错误的几个错误(#767)
- 更新了内部验证系统,不再使用递归,以实现更好的短路处理(#766)

## [2.11.2] - 2020-07-10

### 修复

- 修复了损坏的源链接(#749)
- 确保编译是确定的(#749)
- 从NuGet包中删除了多余的文件(#749)

## [2.11.1] - 2020-07-10

### 修复

- 确保.NET Framework构建通过PEVerify(#744)
- `OpenXmlPartContainer.DeletePart`不再在给定标识符没有匹配项时抛出异常(#740)
- 将过时成员标记为不显示在Intellisense中(#745)
- 修复了`AttributeRequiredConditionToValue`语义约束的问题,其中验证可能会在正确的输入上失败(#746)

## [2.11.0] - 2020-05-21

### 新增

- 添加了`FileFormatVersions.2019`枚举(#695)
- 添加了`ChartSpace`和图表元素以支持新的2016命名空间。这允许使用“Sunburst”等图表样式构建图表部分(#687)。
- 添加了`OpenXmlElementFunctionalExtensions.With(...)`扩展方法,它为在纯函数转换的上下文中构建`OpenXmlElement`实例提供了灵活的方式(#679)
- 为枚举类型和值添加了最低Office版本(#707)
- 添加了额外的`CompatSettingNameValues`值:`UseWord2013TrackBottomHyphenation`、`AllowHyphenationAtTrackBottom`和`AllowTextAfterFloatingTableBreak`(#706)
- 根据MS-OI29500 2.1.1783-1799为Arc、Curve、Line、PolyLine、Group、Image、Oval、Rect和RoundRect形状复杂类型添加了gfxdata属性(#709)
- 添加了`OpenXmlPartContainer.TryGetPartById`以启用无异常的子部分检索,如果不存在(#714)
- 添加了`OpenXmlPackage.StrictRelationshipFound`属性以指示此包是否包含从严格模式转换的过渡关系(#716)

### 修复

- 自定义派生的部分没有从其父部分继承已知的部分,导致添加部分失败(#722)

### 变更

- 将`OpenXmlAttribute`中的属性设置器标记为过时,因为结构不应该是可变的(#698)

## [2.10.1] - 2020-02-28

### 修复

- 确保在将`OpenXmlElement`与外部XML一起初始化时,属性是可用的(#684,#692)
- 一些文档错误(#681)
- 移除了在特定条件下使验证元素不可线程安全的状态(#686)
- 正确插入强类型元素,这些元素在已知的非强类型元素之前(#690)

## [2.10.0] - 2020-01-10

### 新增

- 添加了初始的Office 2016支持,包括`FileFormatVersion.Office2016`、`ExtendedChartPart`和其他新的架构元素(#586)
- 添加.NET Standard 2.0目标(#587)
- 包括符号支持以进行调试(#650)
- 从`XmlPath`中公开了`IXmlNamespaceResolver`而不是字符串的格式化列表,以公开命名空间/前缀映射(#536)
- 在`OpenXmlComparableSimpleValue`上实现了`IComparable`和`IEquatable`,以允许进行比较而无需装箱(#550)
- 添加了`OpenXmlPackage.RootPart`,以方便访问任何包上的根部分(#661)

### 变更

- 更新到System.IO.Packaging的v4.7.0版本,其中包含许多性能修复(#660)
- 合并了元素子代/属性的数据以减少重复(#540、#547、#548)
- 将元素子代约束的透明二进制数据替换为声明性模型(#603)
- 在可能的情况下进行了一系列性能修复以最小化分配
- 大小从5.5mb减少到4.3mb,减少了20%
- 验证子系统经历了彻底的重设计。这可能导致报告的错误发生变化。

### 修复

- 修复了一些文档不一致之处(#582)
- 修复了`ToFlatOpcDocument`、`ToFlatOpcString`、`FromFlatOpcDocument`和`FromFlatOpcString`,以正确处理交替格式导入部分,“altChunk部分”(#659)

## [2.9.1] - 2019-03-13

### 变更

- 添加了一个针对.NET Native编译器问题的解决方案,该问题不支持使用包含自动实现的属性的struct调用`Marshal.SizeOf`(#569)
- 修复了一个文档错误(#528)

## [2.9.0] - 2018-06-08

### 新增

- `ListValue`现在实现了`IEnumerable`(#385)
- 添加了 `WebExtension.Frozen` 属性,同时废弃了拼写错误的 `Fronzen` 属性 (#460)
- 添加了 `OpenXmlPackage.CanSave` 属性,表示平台是否支持保存而不关闭程序包 (#468)
- 简单类型(除了 `EnumValue` 和 `ListValue`)现在实现了 `IComparable` 和 `IEquatable` 接口 (#487)

### 变更

- 移除了一些验证器中保留的程序包状态,这些状态在未使用时将占用内存 (#390)
- 改进了 `EnumSimpleType` 的解析,减少了分配和对未来的缓存使用 (#408)
- 修复了文档中的一些拼写错误 (#462)
- 在 .NET Framework 上调用 `OpenXmlPackage.Save` 时,现在将包刷新到流中 (#468)
- 修复了在执行严格属性转换时出现的竞争条件 (#480)
- 验证使用的架构数据采用更紧凑的格式,导致 dll 大小减小并提高了加载性能 (#482, #483)
- 一些 API 被标记为已过时,因为它们有简单的解决方案,并且在下一个主要版本中将被删除
- 修复了包含 Office 2007 的约束值,而实际上只支持后续版本的问题
- 将 `System.IO.Packaging` 升级到 4.5.0,该版本修复了 Xamarin 平台上的一些问题并最小化了 .NET Framework 的依赖性

## [2.8.1] - 2018-01-03

### 变更

- 修正了程序包许可文件引用,以显示更新的 MIT 许可证

## [2.8.0] - 2017-12-28

### 新增

- 默认运行时指令以改善 .NET Native 支持。

### 变更

- 修复了以 UTF8 编码保存部分,但没有字节顺序标记,这导致某些渲染器无法打开生成的文档。
- 修复了在打开程序包时遇到错误时抛出的异常,以确保跨平台的兼容性。
- 修复了在 Mono 平台上使用 System.IO.Packaging NuGet 包(Xamarin 等)创建文档时的问题。
- 当自动保存为 false 时,修复了手动保存程序包的问题。
- 修复了架构约束数据和跨平台的标准化序列化问题。
- 将 `System.IO.Packaging` 升级到 4.4.0,该版本修复了在打开程序包时与 .NET Framework 的一些一致性问题。

## [2.7.2] - 2017-06-06

### 新增

- 程序包现在支持 .NET 3.5、.NET 4.0,除了 .NET Standard 1.3 和 .NET Framework 4.6 之外

### 变更

- 修复了在程序集中未设置程序集版本的问题。

## [2.7.1] - 2017-01-31

### 变更

- 修复了在强命名强制执行的情况下,在 .NET Framework 上调用验证时崩溃的问题。

## [2.7.0] - 2017-01-24

### 新增

- SDK 现在支持 .NET Standard 1.3

### 变更

- 将 .NET Standard 1.3 中的 System.IO.Packaging 从 dotnet/corefx 移至 WindowsBase,.NET 4.5。
- 清理了项目构建系统以使用 .NET CLI。

## [2.6.1] - 2016-01-15

### 新增

- 添加了数百个 XUnit 测试。现在总共有 1333 个测试,运行大约需要 20 分钟,请耐心等待。

## [2.6.0] - 2015-06-29

### 新增

- 引入了替代 `System.IO.Packaging`,修复了在 WindowsBase 实现中发现的一些严重的(尽管是异常的)错误。

[3.0.1]: https://github.com/dotnet/Open-XML-SDK/compare/v3.0.0...v3.0.1
[3.0.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.20.0...v3.0.0
[2.20.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.19.0...v2.20.0
[2.19.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.18.0...v2.19.0
[2.18.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.1...v2.18.0
[2.17.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.0...v2.17.1
[2.17.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.16.0...v2.17.0
[2.16.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.15.0...v2.16.0
[2.15.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0...v2.15.0
版本 2.14.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0-beta1...v2.14.0)
版本 2.13.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.1)
版本 2.13.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.0)
版本 2.12.3:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.12.3...v2.12.1)
版本 2.12.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.12.1...v2.12.0)
版本 2.12.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.12.0...v2.11.3)
版本 2.11.3:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.11.3...v2.11.2)
版本 2.11.2:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.11.2...v2.11.1)
版本 2.11.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.11.1...v2.11.0)
版本 2.11.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.11.0...v2.10.1)
版本 2.10.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.10.1...v2.10.0)
版本 2.10.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.10.0...v2.9.1)
版本 2.9.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.9.1...v2.9.0)
版本 2.9.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.9.0...v2.8.1)
版本 2.8.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.8.1...v2.8.0)
版本 2.8.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.8.0...v2.7.2)
版本 2.7.2:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.7.1...v2.7.2)
版本 2.7.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.7.0...v2.7.1)
版本 2.7.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.6.1...v2.7.0)
版本 2.6.1:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.6.0...v2.6.1)
版本 2.6.0:[查看更改](https://github.com/dotnet/Open-XML-SDK/compare/v2.5.0...v2.6.0)