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构建时。
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 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 Framework 3.5
- 无依赖项。
-
.NET Framework 4.0
- 无依赖项。
-
.NET Framework 4.6
- 无依赖项。
-
.NET Standard 2.0
- System.IO.Packaging (>= 8.0.0)
-
net6.0
- System.IO.Packaging (>= 8.0.0)
-
net8.0
- System.IO.Packaging (>= 8.0.0)
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
- 用于添加子部分的方法(例如`AddImagePart`)现在作为新标记接口`ISupportedRelationship
- 部分(例如`ImagePartType`的类型信息枚举)不再是枚举,而是一个静态类,用于公开已知的部分类型作为结构体。现在可以使用包含必需信息的新的`PartTypeInfo`结构体来调用定义新内容类型/扩展对的方法。
- `OpenXmlPackage.CanSave`现在是实例属性 (#1307)
- 移除了`OpenXmlSettings.RelationshipErrorHandlerFactory`及其相关类型,并用内置机制替换以启用此功能
- `IdPartPair`现在是只读结构体而不是类
- 将`PartExtensionProvider`重命名为`IPartExtensionFeature`,并将其表面区域减少到仅两个方法(而不是完整的`Dictionary<,>`)。从`OpenXmlPackage`访问此属性的属性已被移除,但如果需要,可以通过`Features.Get
- `OpenXmlPart`/`OpenXmlContainer`/`OpenXmlPackage`及其派生类型现在具有内部构造函数(因为这些内部抽象方法很可能没有被外部继承)
- `OpenXmlElementList`现在是一个结构体,在可用时实现`IEnumerable
- 现在为每个包类型提供了`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
### 修复
- 使用不可变的区域设置修复了 `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
- 增加了 `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
- 修复了一个文档错误(#528)
## [2.9.0] - 2018-06-08
### 新增
- `ListValue` 现已实现 `IEnumerable
- 添加了一个 `WebExtension.Frozen` 属性,并弃用了拼写错误的 `Fronzen` 属性(#460)
- 添加了一个 `OpenXmlPackage.CanSave` 属性,它指示平台是否支持在不关闭包的情况下保存(#468)
- 简单类型(除 `EnumValue` 和 `ListValue` 外)现在实现了 `IComparable
### 修改
- 修除了一些验证器中的状态,这些状态会在未使用时保留包(#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