Open XML SDK の新機能

[3.0.0] - 2023-11-15

追加

  • パスまたはストリームを使用して構築された場合、パッケージを .NET Core と .NET 5 以降に保存できるようになりました (#1307)。
  • パッケージでは、形式が正しくない 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 を参照しても同じ型をコンパイルできますが、より小さなパッケージが必要な場合は、フレームワーク パッケージのみに依存できます。
  • 同様の API サーフェスではなく、 のOpenXmlPackage.PackageSystem.IO.Packaging.Package型を にDocumentFormat.OpenXml.Packaging.IPackage変更しました
  • EnumValue<T> は、 ではなく System.Enum構造体をボックス化するために使用されます。 これにより、リフレクションに頼ることなく、その上で動作を有効にすることができます
  • 子パーツ (つまり AddImagePart) を追加するパーツのメソッドが、新しいマーカー インターフェイスから拡張メソッドとして実装されるようになりました ISupportedRelationship<T>
  • パーツ型情報列挙型 (つまり ImagePartType) は列挙型ではなく、既知のパーツ型を構造体として公開するための静的クラスです。 これで、新しいコンテンツ タイプ/拡張ペアを定義する任意のメソッドを、必要な情報を含む新しい PartTypeInfo 構造体で呼び出すことができます。
  • OpenXmlPackage.CanSave はインスタンス プロパティになりました (#1307)
  • これを有効にする組み込みのメカニズムに置き換えられ、関連付けられた型とが削除されましたOpenXmlSettings.RelationshipErrorHandlerFactory
  • IdPartPair は、クラスではなく読み取り専用構造体になりました
  • PartExtensionProviderに名前をIPartExtensionFeature変更し、その表面積を 2 つのメソッド (完全Dictionary<,>なメソッドではなく) に減らしました。 このオフ OpenXmlPackage にアクセスするプロパティは削除されましたが、必要に応じて 経由で Features.Get<IPartExtensionFeature>() アクセスできます。
  • OpenXmlPart/OpenXmlContainer/OpenXmlPackage 派生型と派生型には内部コンストラクターが含まれるようになりました (これらは内部抽象メソッドを持っていたため、外部でサブクラス化されていない可能性が最も高い)
  • OpenXmlElementListは、 を実装し、使用可能な場合はIEnumerable<OpenXmlElement>IReadOnlyList<OpenXmlElement>構造体になりました (#1429)
  • の個々の実装は、パッケージのOpenXmlPartReader種類 (、WordprocessingDocumentPartReaderSpreadsheetDocumentPartReaderPresentationDocumentPartReader) ごとに使用できるようになりました。また、以前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] - 2023-04-05

追加

  • DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula 名前空間を追加しました
  • DocumentFormat.OpenXml.Office を追加しました。Word。2023 年。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 名前空間を追加しました
  • Child RichDataPivotCacheGuid を DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition に追加しました

Fixed

  • 可能な限りリフレクションの使用を削除しました (#1240)
  • 複製またはコピーの作成時に一部の URI が変更される問題を修正しました (#1234)
  • .NET 6 以降でフル ストリームを読み取らない FlatOpc 世代の問題を修正しました (#1232)
  • 復元されたリレーションシップが正しく読み込まれない問題を修正しました (#1207)

[2.18.0] 2022-09-06

追加

  • DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 名前空間を追加しました (#1196)
  • DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet に durableId 属性を追加しました (#1196)
  • 型指定された要素、パーツ、パッケージの基本クラスがいくつか追加されました (#1185)

変更

  • .NET Foundation の要件に準拠するように調整された LICENSE.md (#1194)
  • 内部サービスのパフォーマンスを向上するためのその他の変更

[2.17.1] - 2022-06-28

削除

  • プレビュー名前空間 DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions が削除されました。この名前空間では現在、無効なドキュメントが作成されるためです。

Fixed

  • PowerPointCommentPart リレーションシップを PresentationPart に復元しました。

Deprecated

  • PowerPointCommentPart と PresentationPart の関係は非推奨となり、今後のバージョンで削除される予定です。

[2.17.0] - リリースされていない

追加

  • DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions 名前空間を追加しました (#1151)
  • DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo 名前空間を追加しました (#1151)

Fixed

  • PowerPointCommentPart リレーションシップを SlidePart に移動しました (#1137)

更新あり

  • EnablePackageValidation を優先してパブリック API アナライザーを削除しました (#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.FeaturesDocumentFormat.OpenXml.Linq出荷します。 詳細については、リポジトリのドキュメントを参照してください。
  • イメージ パーツの種類の取得をサポートする拡張メソッドを追加しました (#1082)
  • 生成されたクラスと、 FileFormatVersions.Microsoft365 新しいサブスクリプション モデルの種類と制約を追加しました (#1097)。

Fixed

  • MIME の種類 model/gltf.binary の変更に関する問題を修正しました (#1069)
  • DocumentFormat.OpenXml.Office.Drawing.ShapeTree は、2007 ではなく Office 2010 以降でのみ使用できるようになりました。
  • 値を new CellValue(bool) 正しくシリアル化する (#1070)
  • リポジトリ内ソース ジェネレーターを介して生成される既知の名前空間を更新しました (#1092)
  • enum に関するいくつかのドキュメントの FileFormatVersions 問題

[2.14.0] - 2021-10-28

追加

  • Office 2021型と制約の生成されたクラスを追加しました (#1030)
  • および にプロパティをOpenXmlElementOpenXmlPartContainer追加Featuresして、パートごとまたはドキュメントごとの状態ストレージを有効にしました
  • のパブリック コンストラクターを XmlPath 追加しました (#1013)
  • リッチ データ型のパーツを追加しました (#1002)
  • 一意の段落 ID を生成するメソッドを追加しました (#1000)

[2.13.1] - 2021-08-17

Fixed

  • 誤って定義された null 許容注釈を修正しました (#953、#955)
  • 特定の状況下で を作成するときに を TextReader 破棄する問題を XmlReader 修正しました (#940)
  • ドキュメントの種類を修正しました (#937)
  • データ パーツに子を追加する問題を修正しました (#934)
  • 一般的な値であったドキュメント エントリを役立つコメントに置き換えた (#992)
  • AddDataPartRelationship での回帰を修正しました (#954)

[2.13.0] - 2021-05-13

追加

  • オープン仕様に一致する追加の O19 型 (#916)
  • Office 2019 の型と制約用に生成されたクラスを追加しました (#882)
  • null 許容属性を追加しました (#840、 #849)
  • 空白を無視する および OpenXmlReader.Create(...)OpenXmlPartReaderオーバーロードを追加しました (#857)
  • バイトのエンコードとデコードを管理するために と HexBinaryValue.Create(byte[]) を追加しました HexBinaryValue.TryGetBytes(...) (#867)
  • そこに等しい実装と古いセッターを修正するために 実装されました IEquatable<IdPartPair>IdPartPair (#871)

Fixed

  • 不変カルチャを使用するコンストラクターの CellValue シリアル化を修正しました (#903)
  • 数値セル値の指数を許可するように解析を修正しました (#901)
  • が関係している場合 UniqueAttributeValueConstraint の大規模なパフォーマンスボトルネックを修正しました (#924)

Deprecated

  • 非推奨の Office2013。Word。Person.Contact プロパティ。 これは永続化されなくなり、将来のバージョンでは削除されます (#912)

[2.12.3] - 2021-02-24

Fixed

  • ブール値が CellValue 正しく検証されない問題を修正しました (#890)

[2.12.2] - 2021-02-16

Fixed

  • 結果の URI が OpenSettings.RelationshipErrorHandlerFactory 入力よりも小さい場合に無効な XML が作成される問題を修正しました (#883)

[2.12.1] - 2021-01-11

Fixed

  • 要素を削除するためにインスタンスの OpenXmlCompositeElement プロパティを null に設定できないバグを修正しました (#850)
  • スローせずに null 値を適切に設定するように修正 ( OpenXmlElement.RawOuterXml #818)
  • ターゲット値に関係なく、形式が正しくないすべての URI の書き換えを許可する (#835)

[2.12.0] - 2020-12-09

追加

  • 形式が正しくないリンクでドキュメントの解析を中断する URI を処理する方法を提供するために追加 OpenSettings.RelationshipErrorHandlerFactory されました (#793)
  • スキーマごとに正しい順序で子を追加するために追加 ( OpenXmlCompositeElement.AddChild(OpenXmlElement) #774)
  • と の代わりに と SmartTagIdSmtIdSmtClean追加しました SmartTagClean (#747)
  • .NET 4.0 以降で実行時間の長い検証を簡単に取り消せるようにオーバーライドを追加しました OpenXmlValidator.Validate(..., CancellationToken) (#773)
  • 、、および を受け取るためのdecimaldoubleオーバーロードCellValueint、それらを解析するための便利なメソッドを追加しました (#782)
  • 数値と日付形式の CellType 検証を追加しました (#782)
  • 基になるリーダーの取得IXmlLineInfoに追加 (OpenXmlReader.GetLineInfo()使用可能な場合) (#804)

Fixed

  • ドキュメントに SVG ファイルが含まれている場合に FlatOPC として保存しようとするとスローされる例外を修正しました (#822)
  • 下位互換性のために属性を追加しました SchemaAttrAttribute (#825)

削除

  • .NET 4.6 ビルドでの への System.IO.Packaging 明示的な参照を削除しました (#774)

[2.11.3] - 2020-07-17

Fixed

  • ReferenceExistConstraint が関係している場合IndexReferenceConstraintの大規模なパフォーマンスボトルネックを修正しました (#763)
  • 問題の読み込み日を修正するために、2 番目の分数に最も多い 3 つの数字のみを含むように修正 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) のようなグラフ スタイルでグラフ パーツを作成するための接続部分が可能になります。
  • 純粋な関数型変換のコンテキストでインスタンスを構築するための柔軟な手段をOpenXmlElement提供する拡張メソッドを追加しました OpenXmlElementFunctionalExtensions.With(...) (#679)
  • 列挙型と値の最小 Office バージョンを追加しました (#707)
  • 追加の CompatSettingNameValues 値を追加しました: UseWord2013TrackBottomHyphenationAllowHyphenationAtTrackBottom、および AllowTextAfterFloatingTableBreak (#706)
  • MS-OI29500 2.1.1783-1799 に gfxdata attribue を追加しました (#709)
  • 子パーツが存在しない場合に例外なしで取得できるように追加されました OpenXmlPartContainer.TryGetPartById (#714)
  • このパッケージに Strict から変換された遷移関係が含まれているかどうかを示すプロパティを追加しました OpenXmlPackage.StrictRelationshipFound (#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

追加

  • 、、およびその他の新しいスキーマ要素を含む FileFormatVersion.Office2016ExtendedChartPart Office 2016 の初期サポートを追加しました (#586)
  • .NET Standard 2.0 ターゲットを追加しました (#587)
  • デバッグに含まれるシンボルのサポート (#650)
  • IXmlNamespaceResolver名前空間/プレフィックス マッピングを公開するために、文字列の書式設定されたリストの代わりにからXmlPath公開されます (#536)
  • IComparable<T>と をOpenXmlComparableSimpleValue実装してIEquatable<T>、ボックス化を行わずに比較できるようにします (#550)
  • 任意のパッケージのルート部分に簡単にアクセスするために追加されました OpenXmlPackage.RootPart (#661)

変更

  • System.IO.Packaging の v4.7.0 に更新され、多数の修正プログラムが適用されます (#660)
  • 重複を減らすための要素の子/プロパティの統合データ (#540、#547、#548)
  • 要素の子制約の不透明なバイナリ データを宣言型モデルに置き換えた (#603)
  • 可能な限り割り当てを最小限に抑えるための多数のパフォーマンス修正
  • サイズを 5.5 mb から 4.3 mb に 20% 削減
  • 検証サブシステムは大幅な再設計を行いました。 これにより、報告されるエラーが変更される可能性があります。

Fixed

  • ドキュメントの不整合を修正しました (#582)
  • FromFlatOpcDocumentFromFlatOpcStringToFlatOpcString代替形式のインポート パーツ、または "altChunk パーツ" を正しく処理するための、および を修正しました ToFlatOpcDocument(#659)

[2.9.1] - 2019-03-13

変更

  • 自動実装プロパティを含む構造体での呼び出しMarshal.SizeOf<T>をサポートしない.NET ネイティブ コンパイラの問題の回避策を追加しました (#569)
  • ドキュメント エラーを修正しました (#528)

[2.9.0] - 2018-06-08

追加

  • ListValue が実装されるようになりました IEnumerable<T> (#385)
  • WebExtension.Frozenおよび古いスペルミスのプロパティを追加しました Fronzen (#460)
  • パッケージを OpenXmlPackage.CanSave 閉じずにプラットフォームで保存をサポートするかどうかを示すプロパティを追加しました (#468)
  • 単純型 (および をListValue除くEnumValue) では、 と がIEquatable<T>実装IComparable<T>されるようになりました (#487)

変更

  • 使用されていないときにパッケージを保持するバリデーターで実行された状態を削除しました (#390)
  • EnumSimpleType 解析が改善され、将来使用するために割り当てとキャッシュが少なくなりました (#408)
  • ドキュメントのスペル ミスの数を修正しました (#462)
  • .NET Frameworkで を呼び出OpenXmlPackage.Saveすと、パッケージがストリームにフラッシュされるようになりました (#468)
  • 属性の厳密な変換を実行しているときに競合状態を修正しました (#480)
  • 検証用のスキーマ データでは、よりコンパクトな形式が使用され、読み込み時の dll サイズとパフォーマンスが低下します (#482、#483)
  • 多くの API は、単純な回避策があるため廃止済みとしてマークされ、次の大きな変更で削除されます
  • Office 2007 を含む検証の制約値を修正しました(それ以降のバージョンでのみサポートされていた場合でも)
  • Xamarin プラットフォーム上のいくつかの問題を修正し、.NET Frameworkへの依存関係を最小限に抑える 4.5.0 に更新System.IO.Packagingしました

[2.8.1] - 2018-01-03

変更

  • 更新された MIT ライセンスを表示するようにパッケージ ライセンス ファイル参照を修正しました

[2.8.0] - 2017-12-28

追加

  • .NET ネイティブサポートを向上するための既定のランタイム ディレクティブ。

変更

  • UTF8 でエンコードされる部分の保存が、バイト順マークなしで修正されました。 これにより、一部のレンダラーは生成されたドキュメントを開くことができませんでした。
  • プラットフォーム間で一貫性のあるパッケージを開くときにエラーが発生したときにスローされる例外を修正しました。
  • ドキュメントの作成時に System.IO.Packaging NuGet パッケージ (Xamarin など) を使用する Mono プラットフォームの問題を修正しました。
  • 自動保存が false の場合のパッケージの手動保存を修正しました。
  • プラットフォーム間でのスキーマ制約データと標準化されたシリアル化を修正しました。
  • バージョン 4.4.0 にSystem.IO.Packagingアップグレードされ、パッケージを開くときに.NET Frameworkとの一貫性が修正されます。

[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 Frameworkで検証が呼び出された場合のクラッシュを修正しました。

[2.7.0] - 2017-01-24

追加

  • SDK で .NET Standard 1.3 がサポートされるようになりました

変更

  • .NET Standard 1.3 用 dotnet/corefx と .NET 4.5 用 WindowsBase から System.IO.Packaging を使用するように移動しました。
  • .NET CLI を使用するようにプロジェクト ビルド システムをクリーンアップしました。

[2.6.1] - 2016-01-15

追加

  • 何百もの XUnit テストを追加しました。 これで合計 1333 個のテストが行われます。 実行には約 20 分かかりますので、辛抱強くしてください。

[2.6.0] - 2015-06-29

追加

  • WindowsBase 実装で見つかった重大な (ただし例外的な) バグを修正する代替品 System.IO.Packaging を組み込みました