dotnet add package DocumentFormat.OpenXml.Framework --version 3.1.0                
NuGet\Install-Package DocumentFormat.OpenXml.Framework -Version 3.1.0                
<PackageReference Include="DocumentFormat.OpenXml.Framework" Version="3.1.0" />                
paket add DocumentFormat.OpenXml.Framework --version 3.1.0                
#r "nuget: DocumentFormat.OpenXml.Framework, 3.1.0"                
// Install DocumentFormat.OpenXml.Framework as a Cake Addin
#addin nuget:?package=DocumentFormat.OpenXml.Framework&version=3.1.0

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

Open XML SDK

[!NOTE]

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

![重要] CI数据源URL已于2024年4月2日变更。请更新为新URL,如在使用CI构建时。

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上的自定义数据源获取。此处稳定版本的发布将与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 Open XML文件的xml部分,并在保存时查看与之前的OOXML部分的差异。在VS Code的扩展标签页中搜索“OOXML”或从VS Code市场下载。
  • ShapeCrawler:此库在OpenXml SDK之上提供了一个简化的对象模型,以操纵PowerPoint文档。
  • OOXML Validator:VS Code扩展,用于验证Office Open XML文件。在VS Code的扩展标签页中搜索“OOXML”或从VS Code市场下载。

我能如何贡献?

我们欢迎贡献!世界各地有许多人帮助我们改进了此项目。

报告安全问题和安全漏洞

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

.NET基金会

Open XML SDK是.NET Foundation项目。

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

许可证

Open XML SDK遵循MIT许可

产品 兼容和额外的计算目标框架版本。
.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 标准库 netstandard2.0 兼容。 netstandard2.1 已计算。
.NET 框架 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 标准

NuGet 包 (37)

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

下载
DocumentFormat.OpenXml

Open XML SDK 提供了处理 Office Word、Excel 和 PowerPoint 文档的工具。它支持以下场景:- 高性能生成文字处理文档、电子表格和演示文稿。从 XML 数据源填充 Word 文件内容。将 Word 或 PowerPoint 文件拆分为多个文件,或合并多个 Word/PowerPoint 文件为一个文件。从 Excel 文档中提取数据。使用正则表达式在 Word/PowerPoint 中搜索和替换内容。更新 Word/PowerPoint 中图表的缓存数据和嵌入式电子表格。修改文档,如删除跟踪修订或从文档中删除不可接受的内容。

GrapeCity.ActiveReports.Core.Export.Excel.Page

ActiveReports Excel 导出库

GrapeCity.ActiveReports.Export.Excel

ActiveReports 是一组组件,使得您可以在 .NET 或 .NET Core 应用程序中创建、渲染、打印和导出报表。本包包括创建和渲染像素完美、所见即所得的报表所需的核心引擎组件。

GrapeCity.ActiveReports.Core.Export.Word.Page

ActiveReports Word 导出库

GrapeCity.ActiveReports.Export.Word

ActiveReports 是一组组件,使得您可以在 .NET 或 .NET Core 应用程序中创建、渲染、打印和导出报表。本包包括创建和渲染像素完美、所见即所得的报表所需的核心引擎组件。

GitHub 仓库

本包没有被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
3.1.0 47,303 7/30/2024
3.0.2 1,882,118 3/14/2024
3.0.1 1,339,609 1/9/2024
3.0.0 968,488 11/15/2023
3.0.0-beta0003 19,258 9/5/2023
3.0.0-beta0002 15,350 6/16/2023

## 更新日志

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

格式基于 [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
并且本项目遵循 [Semantic Versioning](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` 现在是框架包的一部分,默认情况下在包或部分中可用。

### 破坏性变更

- .NET Standard 1.3 已不再是支持的平台。最低支持的 .NET Standard 是 2.0。
- 核心基础设施现在包含在新的包 DocumentFormat.OpenXml.Framework 中。类型仍在 DocumentFormat.OpenXml 中。这意味着您仍然可以引用 DocumentFormat.OpenXml 并编译相同的类型,但如果您想要更小的包,则可以只依赖于框架包。
- 将 `OpenXmlPackage.Package` 的类型更改为 `DocumentFormat.OpenXml.Packaging.IPackage`,而不是 `System.IO.Packaging.Package`,并提供相似的 API。
- `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之外包的无需.target frameworks (#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的第1版中删除了过时的验证逻辑 (#1316)
- 从2.x版本中删除了过时的方法 (#1316)
- 从`OpenXmlAttribute`中删除了可变属性并将其标记为`readonly` (#1282)
- 移除了`OpenXmlPackage.Close`并改为`Dispose` (#1373)
- 移除了`OpenXmlPackage.SaveAs`并改为`Clone` (#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目标带支持 trimming (#1243, #1240)
- 添加了DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData命名空间
- 添加了DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command命名空间
- 添加了DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command命名空间
- 将子`RichDataPivotCacheGuid`添加到`DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition

### 修复

- 尽可能地移除了反射的使用 (#1240)
- 解决了在克隆或创建副本时一些URIs可能会更改的问题 (#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)。

### 修复

- 修复了 mime 类型 `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

### 修复

- 修复了一些错误地定义的可空性注释 (#953, #955)
- 修复了在特定情况下创建 `XmlReader` 时会丢弃 `TextReader` 的问题 (#940)
- 修复了一个文档类型问题 (#937)
- 修复了向数据部分添加附加子项的问题 (#934)
- 用有帮助的注释替换了一些通用的文档条目 (#992)
- 修复了在 AddDataPartRelationship 中出现的回归 (#954)

感谢以下人员的贡献

@ThomasBarnekow
@sorensenmatias
@lklein53
@lindexi

## [2.13.0] - 2021-05-13

### 新增

- 添加了符合 Open 规范的 O19 类型 (#916)
- 添加了 Office 2019 类型和解的生成类 (#882)
- 添加了可空性属性 (#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`创建的XML无效的问题,如果结果URI小于输入URI(#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)
添加了`.NET 4.0+上`CellValue`的重载,以允许在长时间运行的验证上更容易地取消(#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)
为新的2016命名空间添加了`ChartSpace`和图表元素。这允许使用“太阳纹”等图表样式构建图表部分(#687)。
添加了`OpenXmlElementFunctionalExtensions.With(...)`扩展方法,这提供了一种在纯函数转换的环境中构建`OpenXmlElement`实例的灵活方法(#679)
为枚举类型和值添加了最小Office版本(#707)
添加了额外的`CompatSettingNameValues`值:`UseWord2013TrackBottomHyphenation`、`AllowHyphenationAtTrackBottom`和`AllowTextAfterFloatingTableBreak`(#706)
根据MS-OI29500 2.1.1783-1799在弧、曲线、线、折线、组、图像、椭圆、矩形和圆角矩形形状复杂数据类型中添加了gfxdata属性(#709)
添加了`OpenXmlPartContainer.TryGetPartById`以启用在不抛出异常的情况下检索子部分(如果不存在)(#714)
添加了`OpenXmlPackage.StrictRelationshipFound`属性,指示此包是否包含从严格模式转换而来的过渡关系(#716)

### 修复

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

### 修改

将`OpenXmlAttribute`中的属性设置器标记为废弃,因为结构不应具有可变状态(#698)

## [2.10.1] - 2020-02-28

### 修复

确保在使用外围XML初始化`OpenXmlElement`时可用属性(#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
- 验证子系统经过大幅度重新设计。这可能会导致错误报告的内容发生变化。

### 修复

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

## [2.9.1] - 2019-03-13

### 修改

- 为 .NET Native 编译器问题添加了一个解决方法,该问题不支持对包含自动实现的属性的结构调用 `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 被标记为过时,因为这些 API 有简单的替代方案,将在下一个主要更改中删除
- 修复了一些验证中的约束值,即使在 Office 2007 不受支持的情况下也引用了这些值(#390)
- 将 `System.IO.Packaging` 更新到 4.5.0,解决了在 Xamarin 平台上的某些问题,并最小化了依赖于 .NET Framework 的依赖关系(#390)

## [2.8.1] - 2018-01-03

### 修改

- 更正了包许可证文件引用,以显示更新的 MIT 许可证(#390)

## [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。

### 修改

- 移至使用System.IO.Packaging(来自dotnet/corefx)作为.NET Standard 1.3和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