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
<PackageReference Include="DocumentFormat.OpenXml.Linq" Version="3.1.0" />
paket add DocumentFormat.OpenXml.Linq --version 3.1.0
#r "nuget: DocumentFormat.OpenXml.Linq, 3.1.0"
// 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。
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 上的自定义 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
如果您有如何操作的问题
- 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开源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 已计算。 |
-
.NETFramework 3.5
- DocumentFormat.OpenXml.Framework (>= 3.1.0)
-
.NETFramework 4.0
- DocumentFormat.OpenXml.Framework (>= 3.1.0)
-
.NETFramework 4.6
- DocumentFormat.OpenXml.Framework (>= 3.1.0)
-
.NETStandard 2.0
- DocumentFormat.OpenXml.Framework (>= 3.1.0)
-
net8.0
- DocumentFormat.OpenXml.Framework (>= 3.1.0)
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
- 部分上的添加子部分的方法(例如`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之外的所有包装的目标框架(#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
### 修复
- 修复了 `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
- 添加了`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
- 修复了一个文档错误(#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 被标记为已过时,因为它们有简单的解决方案,并且在下一个主要版本中将被删除
- 修复了包含 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)