[3.0.0] - 2023-11-15
添加
- 如果包是使用路径或流 (#1307) 构造的,现在可以保存在 .NET Core 和 .NET 5+ 上。
- 包现在可支持格式不正确的 URI (,例如与 URI 的关系,例如
mailto:person@
) - 为
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
DocumentFormat.OpenXml.Packaging.IPackage
更改为 ,System.IO.Packaging.Package
而不是使用类似的 API 图面 EnumValue<T>
现在用于装箱结构,而不是System.Enum
。 这允许我们启用其行为,而无需诉诸反射- 部件上用于添加子部件的方法 (即
AddImagePart
) 现在作为新标记接口的扩展方法实现ISupportedRelationship<T>
- 部件类型信息枚举 (即
ImagePartType
) 不再是枚举,而是将已知部件类型公开为结构的静态类。 现在,任何定义新内容类型/扩展对的方法都可以使用包含必要信息的新PartTypeInfo
结构调用。 OpenXmlPackage.CanSave
现在是实例属性 (#1307)- 删除
OpenXmlSettings.RelationshipErrorHandlerFactory
了和关联的类型,并替换为启用此功能的内置机制 IdPartPair
现在是只读结构,而不是类- 重命名
PartExtensionProvider
为IPartExtensionFeature
,并将其外围应用缩小到只有两个方法 (而不是完整Dictionary<,>
) 。 用于访问此 off 的属性OpenXmlPackage
已被删除,但可以根据需要通过Features.Get<IPartExtensionFeature>()
访问。 OpenXmlPart
/OpenXmlContainer
/OpenXmlPackage
和派生类型现在具有内部构造函数, (这些构造函数具有内部抽象方法,因此很可能没有在外部进行子类化)OpenXmlElementList
现在是实现 和IReadOnlyList<OpenXmlElement>
(如果可用)的结构IEnumerable<OpenXmlElement>
(#1429)- 现在,每种包类型 ((即
WordprocessingDocumentPartReader
、SpreadsheetDocumentPartReader
PresentationDocumentPartReader
、) )的单个实现OpenXmlPartReader
可用,并且以前的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) - 删除
OpenXmlPackage.Close
了 #Dispose
A0#1373) - 删除
OpenXmlPackage.SaveAs
了 #Clone
A0#1376)
[2.20.0] - 2023-04-05
添加
- 添加了 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)
Fixed
- 修复了 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
Fixed
- 尽可能删除反射用法 (#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 (#1196 添加了 durableId 属性)
- 为类型化元素、部件和包添加了几个基类 (#1185)
更改项
- 调整 LICENSE.md 以符合 .NET Foundation 要求 (#1194)
- 为内部服务提供更好的性能而进行的杂项更改
[2.17.1] - 2022-06-28
已删除
- 删除了预览命名空间 DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions,因为此命名空间当前将创建无效文档。
Fixed
- 已将 PowerPointCommentPart 关系还原到 PresentationPart。
不推荐使用
- PowerPointCommentPart 与 PresentationPart 之间的关系已弃用,并将在未来版本中删除。
[2.17.0] - 未发布
添加
- 添加了 DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions 命名空间 (#1151)
- 添加了 DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo 命名空间 (#1151)
Fixed
- 已将 PowerPointCommentPart 关系移动到 SlidePart (#1137)
更新日期
- 删除了公共 API 分析器,转而支持 EnablePackageValidation (#1154)
[2.16.0] - 2022-03-14
添加
- 添加了方法
OpenXmlPart.UnloadRootElement
,该方法将在加载根元素时卸载根元素 (#1126)
更新日期
- 架构代码生成已使用 C# 代码生成器移动到 SDK 项目
[2.15.0] - 2021-12-16
添加
- 在目录中添加了强类型类和 Linq-to-XML
./samples
的示例 (#1101, #1087) - 为 和
DocumentFormat.OpenXml.Linq
中的DocumentFormat.OpenXml.Features
一些附加功能提供其他库。 有关更多详细信息,请参阅存储库中的文档。 - 添加了扩展方法以支持获取映像部件类型 (#1082)
- 为新的订阅模型类型和约束添加了生成的类和
FileFormatVersions.Microsoft365
(#1097) 。
Fixed
- 修复了已更改 mime 类型
model/gltf.binary
(#1069) 的问题 - DocumentFormat.OpenXml.Office.Drawing.ShapeTree 现在仅在 Office 2010 及更高版本中可用,而不适用于 2007。
- 正确序列化
new CellValue(bool)
值 (#1070) - 更新了通过存储库内源生成器 (#1092) 生成的已知命名空间
- 有关
FileFormatVersions
枚举的一些文档问题
[2.14.0] - 2021-10-28
添加
- 为Office 2021类型和约束添加了生成的类 (#1030)
- 向
OpenXmlPartContainer
和OpenXmlElement
添加了Features
属性,以启用每个部件或每个文档的状态存储 - 为
XmlPath
(#1013) 添加了公共构造函数 - 为富数据类型 (#1002 添加了部件)
- 添加了生成唯一段落 ID (#1000) 的方法
[2.13.1] - 2021-08-17
Fixed
- 修复了错误定义的一些可为空性注释 (#953、 #955)
- 修复了在某些情况下创建
XmlReader
时会释放TextReader
的问题 (#940) - 修复了文档类型 (#937)
- 修复了向数据部件添加其他子级的问题 (#934)
- 已将一些作为泛型值的文档条目替换为有用的注释 (#992)
- 修复了 AddDataPartRelationship (#954) 中的回归
[2.13.0] - 2021-05-13
添加
- 其他 O19 类型,以匹配开放规范 (#916)
- 为 Office 2019 类型和约束添加了生成的类 (#882)
- 添加了可为空属性 (#840, #849)
- 为
OpenXmlPartReader
和OpenXmlReader.Create(...)
添加了重载以忽略空格 (#857) - 添加了
HexBinaryValue.TryGetBytes(...)
和HexBinaryValue.Create(byte[])
以管理字节的编码和解码 (#867) - 在 上
IdPartPair
实现IEquatable<IdPartPair>
以修复那里的相等实现和过时的资源库 (#871)
Fixed
- 修复了构造函数序列化以
CellValue
使用固定区域性 (#903) - 修复了分析以允许数值单元格值的指数 (#901)
- 修复了涉及 时
UniqueAttributeValueConstraint
的巨大性能瓶颈 (#924)
不推荐使用
- 已弃用 Office2013。Word。Person.Contact 属性。 它不再保留,并将在未来版本 (#912)
[2.12.3] - 2021-02-24
Fixed
- 修复了布尔值验证错误的问题
CellValue
(#890)
[2.12.2] - 2021-02-16
Fixed
- 修复了以下问题:
OpenSettings.RelationshipErrorHandlerFactory
如果生成的 URI 小于输入 (#883)
[2.12.1] - 2021-01-11
Fixed
- 修复了无法将实例上的
OpenXmlCompositeElement
属性设置为 null 以删除元素 (#850) - 修复了
OpenXmlElement.RawOuterXml
正确设置 null 值而不引发 (#818) - 允许重写所有格式不正确的 URI,而不考虑目标值 (#835)
[2.12.0] - 2020-12-09
添加
- 添加了
OpenSettings.RelationshipErrorHandlerFactory
,提供了一种处理 URI 的方法,这些 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)
Fixed
- 修复了尝试将文档另存为 FlatOPC(如果文档包含 SVG 文件 ) (#822)
- 为向后兼容性添加了
SchemaAttrAttribute
属性 (#825)
已删除
System.IO.Packaging
删除了对 .NET 4.6 内部版本 (#774)
[2.11.3] - 2020-07-17
Fixed
- 修复了涉及 和
ReferenceExistConstraint
时的IndexReferenceConstraint
大规模性能瓶颈 (#763) - 修复为
CellValue
在秒分数上仅包含三个最有符号的数字,以更正问题加载日期 (#741) - 修复了可能导致错误验证错误的几个验证索引错误 (#767)
- 更新了内部验证系统,使其不使用递归,从而实现更好的短路 (#766)
[2.11.2] - 2020-07-10
Fixed
- 修复了断开的源链接 (#749)
- 确保编译是确定性的 (#749)
- 删除了 NuGet 包 (#749) 中的额外文件
[2.11.1] - 2020-07-10
Fixed
- 确保.NET Framework生成通过 PEVerify (#744)
OpenXmlPartContainer.DeletePart
如果给定的标识符 (#740 不匹配,则不再引发异常)- 将过时的成员标记为不显示 Intellisense (#745)
- 修复了语义约束的问题
AttributeRequiredConditionToValue
:验证在正确的输入时可能会失败 (#746)
[2.11.0] - 2020-05-21
添加
- 添加了
FileFormatVersions.2019
枚举 (#695) - 为新的 2016 命名空间添加了
ChartSpace
和 图表元素。 这允许连接部分使用图表样式(如“Sunburst” (#687) )构建图表部件。 - 添加了
OpenXmlElementFunctionalExtensions.With(...)
扩展方法,为在纯函数转换的上下文中构造OpenXmlElement
实例提供了灵活的方法 (#679) - 添加了枚举类型和值的最低 Office 版本 (#707)
- 添加了其他
CompatSettingNameValues
值:UseWord2013TrackBottomHyphenation
、AllowHyphenationAtTrackBottom
和AllowTextAfterFloatingTableBreak
(#706) - 按 MS-OI29500 2.1.1783-1799 (#709) ,向 Arc、Curve、Line、PolyLine、Group、Image、Oval、Rect 和 RoundRect 形状复杂类型添加了 gfxdata attribue
- 添加了
OpenXmlPartContainer.TryGetPartById
以启用子部件检索(如果不存在) (#714) - 添加了
OpenXmlPackage.StrictRelationshipFound
指示此包是否包含从 Strict (#716 转换的过渡关系)
Fixed
- 自定义派生部件未从其父级继承已知部件,导致添加部件时失败 (#722)
更改项
- 将 中的属性资源库
OpenXmlAttribute
标记为已过时,因为结构不应具有可变状态 (#698)
[2.10.1] - 2020-02-28
Fixed
- 使用外部 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)
IXmlNamespaceResolver
公开自XmlPath
而不是格式化字符串列表,以公开命名空间/前缀映射 (#536)- 实现
IComparable<T>
并IEquatable<T>
启用OpenXmlComparableSimpleValue
以允许在没有装箱的情况下进行比较 (#550) - 添加了
OpenXmlPackage.RootPart
以轻松访问任何包上的根部件 (#661)
更改项
- 已更新到 System.IO.Packaging 的 v4.7.0,它带来了许多性能修复 (#660)
- 合并元素子级/属性的数据以减少重复 (#540, #547, #548)
- 将元素子约束的不透明二进制数据替换为声明性模型 (#603)
- 一些性能修复,以尽可能最大程度地减少分配
- 大小从 5.5mb 减少到 4.3mb 20%
- 验证子系统经过了彻底的重新设计。 这可能会导致更改所报告的错误。
Fixed
- 修复了一些文档不一致问题 (#582)
- 修复了
ToFlatOpcDocument
、ToFlatOpcString
、FromFlatOpcDocument
和FromFlatOpcString
以正确处理可选格式导入部件或“altChunk 部件” (#659)
[2.9.1] - 2019-03-13
更改项
- 为不支持使用包含自动实现属性 (#569 的结构调用
Marshal.SizeOf<T>
的.NET Native编译器问题添加了解决方法) - 修复了文档错误 (#528)
[2.9.0] - 2018-06-08
添加
ListValue
现在实现IEnumerable<T>
(#385)WebExtension.Frozen
添加了 和 已过时拼写错误的Fronzen
属性 (#460)- 添加了一个
OpenXmlPackage.CanSave
属性,该属性指示平台是否支持在不关闭包的情况下保存 (#468) - 简单类型 (,
ListValue
)EnumValue
现在实现IComparable<T>
和IEquatable<T>
(#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 编码但无字节顺序标记的部件保存问题。 这导致某些呈现器无法打开生成的文档。
- 修复了打开包时遇到错误时引发的异常,以便跨平台保持一致。
- 修复了在创建文档时使用 System.IO.Packaging NuGet 包 (Xamarin 等) 的 Mono 平台上出现的问题。
- 修复了自动保存为 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
更改项
- 已从 dotnet/corefx for .NET Standard 1.3 和 WindowsBase for .NET 4.5 迁移到使用 System.IO.Packaging。
- 已清理项目生成系统以使用 .NET CLI。
[2.6.1] - 2016-01-15
添加
- 添加了数百个 XUnit 测试。 现在共有 1333 个测试。 它们大约需要 20 分钟才能运行,所以要有耐心。
[2.6.0] - 2015-06-29
添加
- 合并了一个替代项
System.IO.Packaging
,修复了 WindowsBase 实现中发现的一些严重 (但异常) bug