DocumentFormat.OpenXml.Features 3.1.0
dotnet add package DocumentFormat.OpenXml.Features --version 3.1.0
NuGet\Install-Package DocumentFormat.OpenXml.Features -Version 3.1.0
<PackageReference Include="DocumentFormat.OpenXml.Features" Version="3.1.0" />
paket add DocumentFormat.OpenXml.Features --version 3.1.0
#r "nuget: DocumentFormat.OpenXml.Features, 3.1.0"
// Install DocumentFormat.OpenXml.Features as a Cake Addin #addin nuget:?package=DocumentFormat.OpenXml.Features&version=3.1.0 // Install DocumentFormat.OpenXml.Features as a Cake Tool #tool nuget:?package=DocumentFormat.OpenXml.Features&version=3.1.0
Open XML 工具包
[! 注意 ]
v3.0.0 进行了重构并解决了部分技术债务,同时尽可能保持了源兼容性。您应该能够在仅作出少量更改的情况下更新您的包并重新编译。然而,二进制兼容性不是目标,并且将破坏某些有文档记录的更改。引入此类更改的 PR 被标记为
breaking-change
标签,并被添加到一个清单中,以帮助迁移到 v3.0.0。
[重要] 自2024年4月2日起,CI馈送URL已更改。如果正在使用CI构建,请更新到新URL。
Open XML SDK 提供了用于处理 Office Word、Excel 和 PowerPoint 文档的工具。它支持以下场景:
- 高性能生成文档处理文档、电子表格和演示文稿。
- 文档修改,例如添加、更新和删除内容及元数据。
- 使用正则表达式进行内容搜索和替换。
- 将文件分割(撕碎)成多个文件,或将多个文件合并成一个文件。
- 更新 Word/PowerPoint 中图表的缓存数据和嵌入式电子表格。
目录
包
Open XML SDK 的官方发布 NuGet 包位于 NuGet.org
软件包 | 下载 | 预发布版 |
---|---|---|
DocumentFormat.OpenXml.Framework | ||
DocumentFormat.OpenXml | ||
DocumentFormat.OpenXml.Linq | ||
DocumentFormat.OpenXml.Features |
每日构建
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。
如果你有疑问
- Stack Overflow(标签:openxml 或 openxml-sdk)
- 如何操作示例
相关工具
- Open XML SDK 2.5 生产工具:该工具提供了与 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生产力工具.
- OOXML Viewer:这是一个为Visual Studio Code开发的扩展程序,用于查看和编辑Office Open XML文件的xml部分,以及在从外部程序保存时查看OOXML部分的先前版本之间的差异。在VS Code扩展标签中搜索“OOXML”,或从VS Code MarketPlace下载。
- ShapeCrawler:该库在OpenXml SDK之上提供了一种简化的对象模型,用于操作PowerPoint文档。
- OOXML Validator:VS Code扩展程序,用于验证Office Open XML文件。在VS Code扩展标签中搜索“OOXML”,或从VS Code MarketPlace下载。
如何做出贡献?
我们欢迎贡献!全世界有很多人帮助改进了这个项目。
- 贡献说明解释了我们欢迎哪些类型的贡献
报告安全问题和安全漏洞
应通过电子邮件私下报告安全问题和漏洞,发送至微软安全响应中心(MSRC)[email protected]。您应在24小时内收到回复。如果因某种原因没有收到回复,请通过电子邮件跟进以确保我们已收到您的原始信息。更多信息(包括MSRC PGP密钥)可以在安全技术中心找到。
.NET基金
Open XML SDK是.NET基金的项目。
本项目已采用贡献者守则中定义的行为规范,以阐明我们社区中期望的行为。有关更多信息,请参阅.NET基金会行为规范。
许可证
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 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 已计算。 |
-
.NETFramework 3.5
- DocumentFormat.OpenXml (>= 3.1.0)
-
.NETFramework 4.0
- DocumentFormat.OpenXml (>= 3.1.0)
-
.NETFramework 4.6
- DocumentFormat.OpenXml (>= 3.1.0)
-
.NETStandard 2.0
- DocumentFormat.OpenXml (>= 3.1.0)
-
net8.0
- DocumentFormat.OpenXml (>= 3.1.0)
NuGet 包 (3)
显示依赖于 DocumentFormat.OpenXml.Features 的前 3 个 NuGet 包
软件包 | 下载 |
---|---|
Archsheerary
存档电子表格库 |
|
TJC.Cyclops.OpenXml
openxml 相关封装 |
|
ExcelXmlPowerPack
包描述 |
GitHub 仓库
此包未用于任何流行的 GitHub 仓库。
版本 | 下载 | 最后更新 |
---|---|---|
3.1.0 | 676 | 7/30/2024 |
3.0.2 | 13,876 | 3/14/2024 |
3.0.1 | 3,765 | 1/9/2024 |
3.0.0 | 38,426 | 11/15/2023 |
3.0.0-beta0003 | 361 | 9/5/2023 |
3.0.0-beta0002 | 242 | 6/16/2023 |
2.20.0 | 90,760 | 4/6/2023 |
2.20.0-beta0012 | 160 | 4/6/2023 |
2.19.0 | 31,072 | 12/14/2022 |
2.18.0 | 70,441 | 9/7/2022 |
2.17.1 | 18,244 | 6/30/2022 |
2.16.0 | 9,610 | 3/15/2022 |
2.15.0 | 4,017 | 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`)
## [3.0.0] - 2023-11-15
### 添加
- 如果使用路径或流构造,现在可以将包保存到.NET Core和.NET 5+ (#1307)。
- 现在支持格式错误的URI(例如具有像 `mailto:person@` 这样的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是最低受支持的.NET Standard。
- 核心基础设施现在包含在新的包DocumentFormat.OpenXml.Framework中。类型类仍在DocumentFormat.OpenXml中。这意味着您可能仍可以引用DocumentFormat.OpenXml并编译相同的类型,但如果您想获得更小的包,则可能只需依靠框架包。
- 将 `OpenXmlPackage.Package` 的类型更改为与具有类似API表面的 `DocumentFormat.OpenXml.Packaging.IPackage` 一样的 `System.IO.Packaging.Package`
- `EnumValue<T>` 现在 对结构进行装箱而不是 `System.Enum`。这允许我们无需使用反射即可在它上启用行为
- 向部分添加子部分的方法(例如 `AddImagePart`)现在作为新的标记接口 `ISupportedRelationship<T>` 的扩展方法实现
- 部分类型信息枚举(例如 `ImagePartType`)不再是枚举,而是静态类,用于以结构体形式公开已知的部分类型。现在可以通过包含必要信息的新的 `PartTypeInfo` 结构体来调用任何定义新内容类型/扩展名称对的请求。
- `OpenXmlPackage.CanSave` 现在是实例属性 (#1307)
- 移除 `OpenXmlSettings.RelationshipErrorHandlerFactory` 和相关类型,并用内置机制替换
- `IdPartPair` 现在是一个只读结构体而不是一个类
- 将 `PartExtensionProvider` 重命名为 `IPartExtensionFeature` 并减少了其仅包含两个方法的外部区域(而不是完整的 `Dictionary<,>`)。提供从 `OpenXmlPackage` 访问此属性的属性的已删除,但如有需要,可以通过 `Features.Get<IPartExtensionFeature>()` 而获得。
- `OpenXmlPart`/`OpenXmlContainer`/`OpenXmlPackage` 和其衍生类型现在具有内部构造函数(这些具有内部抽象方法,因此最有可能不会在外部进行子类化)
- `OpenXmlElementList` 现在在可用的地方是一个结构体,实现了 `IEnumerable<OpenXmlElement>` 和 `IReadOnlyList<OpenXmlElement>`(#1429)
- 为每个包类型(例如 `WordprocessingDocumentPartReader`、`SpreadsheetDocumentPartReader`、`PresentationDocumentPartReader`)现在都可用 `OpenXmlPartReader` 的独立实现,并且已删除以前的 `TypedOpenXmlPartReader`。(#1403)
- 减少了除此之外的包的无关目标框架 (#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)
- 替换 `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 目标,支持修剪(#1243,#1240)
- 添加了 DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData 命名空间
- 添加了 DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command 命名空间
- 添加了 DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command 命名空间
- 在 DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition 中添加了 Child RichDataPivotCacheGuid
### 修复
- 尽可能删除了反射(#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 基金会的要求(#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)。
### 修复
- 修复了 `model/gltf.binary` 的 MIME 类型更改问题(#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)
- 为 Rich Data 类型添加了部分(#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 Specifications 匹配的 O19 类型(#916)
- 添加了为 Office 2019 类型生成的类和约束(#882)
- 添加了可空性属性(#840, #849)
- 为 `OpenXmlPartReader` 和 `OpenXmlReader.Create(...)` 添加了忽略空白的重载(#857)
- 为 `HexBinaryValue.TryGetBytes(...)` 和 `HexBinaryValue.Create(byte[])` 添加了管理字节编码和解码的方法(#867)
- 在 `IdPartPair` 上实现了 `IEquatable
### 修复
- 修复了 `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
### 添加
- 为处理格式错误的链接导致解析文档失败的恶意 URI,添加了 `OpenSettings.RelationshipErrorHandlerFactory`(#793)
- 为按照模式添加子元素添加了 `OpenXmlCompositeElement.AddChild(OpenXmlElement)`(#774)
- 用 `SmartTagClean` 和 `SmartTagId` 代替了 `SmtClean` 和 `SmtId`(#747)
- 为 `OpenXmlValidator.Validate(..., CancellationToken)` 添加了重载,以便在 .NET 4.0+ 上更容易取消长时间运行的验证(#773)
- 为 `CellValue` 添加了重载以接受 `decimal`、`double` 和 `int`,以及解析它们的便利方法(#782)
- 为数字和日期格式添加了 `CellType` 的验证(#782)
- 为检索底层读取器的 `IXmlLineInfo`(如果有)添加了 `OpenXmlReader.GetLineInfo()`(#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
### 修复
- 确保在用外部 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
- 通过 `OpenXmlPackage.RootPart` 添加了轻松访问任何包的根部分的功能 (#661)
### 更改
- 更新到 System.IO.Packaging 的 v4.7.0 版本,该版本引入了大量的性能改进 (#660)
- 合并了元素子代/属性的数据以减少重复 (#540、#547、#548)
- 将元素子代约束的不可信二进制数据替换为声明性模型 (#603)
- 在可能的情况下执行了多个性能修复以最小化分配
- 大小减少 20%,从 5.5MB 减少到 4.3MB
- 验证子系统经历了一次彻底的重设计。这可能会导致报告的错误发生变化。
### 修复
- 修复了一些文档不一致性 (#582)
- 修复了 `ToFlatOpcDocument`、`ToFlatOpcString`、`FromFlatOpcDocument` 和 `FromFlatOpcString`,以正确处理替代格式导入部分或 "altChunk parts" (#659)
## [2.9.1] - 2019-03-13
### 更改
- 添加了对 .NET Native 编译器问题的修正方案,该编译器不支持使用包含自动实现的属性的结构的 `Marshal.SizeOf
- 修正了文档错误 (#528)
## [2.9.0] - 2018-06-08
### 添加
- `ListValue` 现在实现了 `IEnumerable
- 添加了 `WebExtension.Frozen` 属性,并废弃了拼写错误的 `Fronzen` 属性 (#460)
- 添加了 `OpenXmlPackage.CanSave` 属性,表示平台是否支持在不关闭包的情况下保存 (#468)
- 简单类型(除 `EnumValue` 和 `ListValue`)现在实现了 `IComparable
### 更改
- 删除了在未使用时保留包的验证器中的状态 (#390)
- `EnumSimpleType` 解析得到改进,使用了更少的分配和缓存供未来使用 (#408)
- 修复了文档中的多个拼写错误 (#462)
- 在 .NET 框架中调用 `OpenXmlPackage.Save` 时,现在将包刷新到流中 (#468)
- 修复了在执行严格属性转换时出现的竞态条件 (#480)
- 用于验证的模式数据使用更加紧凑的格式,导致 dll 大小减小并且加载性能提高 (#482, #483)
- 许多 API 被标记为已弃用,因为这些 API 有简单的解决方案,将在下一个主要更改中删除
- 修复了包含 Office 2007 的某些验证约束值,即使它在较后版本中才受支持 (#390)
- 将 `System.IO.Packaging` 更新到 4.5.0,解决了 Xamarin 平台上的一些问题,并最小化了 .NET 框架的依赖性 (#390)
## [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 框架在打开包方面的一些一致性 (#390)
## [2.7.2] - 2017-06-06
### 添加
- 除了 .NET Standard 1.3 和 .NET Framework 4.6 外,包现在还支持 .NET 3.5 和 .NET 4.0
### 更改
- 修复了在程序集中未设置版本号的问题
## [2.7.1] - 2017-01-31
### 更改
- 修复了在对外强制进行强命名时在 .NET 框架上调用验证时发生的崩溃 (#390)
## [2.7.0] - 2017-01-24
### 添加
- SDK 现在支持 .NET Standard 1.3
### 更改
- 从 dotnet/corefx 迁移到使用 System.IO.Packaging,用于 .NET Standard 1.3,以及 WindowsBase 用于 .NET 4.5 (#390)
- 清理了项目构建系统,以使用 .NET CLI
## [2.6.1] - 2016-01-15
### 添加
- 添加了数百个 XUnit 测试。现在总共有 1333 个测试,它们大约需要 20 分钟运行,请耐心等待 (#390)
## [2.6.0] - 2015-06-29
### 添加
- 集成了一种替代的 `System.IO.Packaging`,它修复了在 WindowsBase 实现中发现的某些严重(但异常)的错误 (#390)
[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