2


0

Open XML SDK v2は、XMLライブラリを使用して手動でコーディングするときに手動で行う必要のある処理を正確に何を処理しますか?

これは、私が尋ねた別の質問と密接に関連しています:https://stackoverflow.com/questions/3319273/[Open XML SDK v2で公開されていない機能はありますか?]

現在、Open XMLファイルを手動で操作しています。 最近、SDKを見て、かなり低レベルで、実際に自分で作成したヘルパークラスに非常に似ていることに驚いた。 私の質問は、XMLライブラリを使用して手作業でコーディングする場合に、SDK v2が手動で行う必要のある処理を正確に処理することです。

たとえば、PowerPointスライドを削除するときに、_relsファイルに自動的にパッチを適用しますか?

2 Answer


3


Otakuのリンクに加えて、http://msdn.microsoft.com/library/ee361919(office.11​​).aspx [this]は、IO.Packaging名前空間を使用してOpenXMLドキュメントをナビゲートする例(下部近く)を示しています。 SDK。

Microsoftがhttp://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en[SDKのダウンロードページ]で述べているように:

_ _ Microsoft Office用のOpen XML SDK 2.0はSystem.IO.Packaging APIの上に構築され、Open XMLドキュメントを操作するための厳密に型指定されたパーツクラスを提供します。 また、SDKは.NET Framework言語統合クエリ(LINQ)テクノロジを使用して、Open XMLドキュメントの一部内のXMLコンテンツへの厳密に型指定されたオブジェクトアクセスを提供します。

Open XML SDK 2.0は、Open XMLパッケージおよびパッケージ内の基盤となるOpen XMLスキーマ要素を操作するタスクを簡素化します。 Open XMLアプリケーションプログラミングインターフェイス(API)は、開発者がOpen XMLパッケージで実行する多くの一般的なタスクをカプセル化するため、わずか数行のコードで複雑な操作を実行できます。 _ _

私はほとんどSDKでしか作業していませんが、たとえば、次を使用するだけでWord文書からテーブルを取得できると便利です。

Table table = wordprocessingDocument.MainDocumentPart.Document.Body.Elements().First();

(つまり、最初のテーブルだと仮定して)

SDKは、ドキュメントを操作するための一種の直感的なオブジェクトベースの方法を提供することで、SDKが実行しようとしていることとまったく同じだと思います。

関係に自動的にパッチを適用する限り-いいえ、それはしません。 そして、あなたが実際に質問をどのように述べているかを振り返ると、私は言うこともあると思います(そして私はOpen XMLにかなり新しいので、これは決して福音ではありません)同じ機能を実現するためのより便利な方法を提供します。 たとえば、要素を削除するときにそれらの関係について知る必要がありますが、それらを扱う方がはるかに簡単です。

また、SDKの上にさらに抽象化を追加するための努力がありました。たとえば、http://extrememl.codeplex.com/ [ExtremeML](Excelライブラリのみ)を参照してください。 私はそれを使用したことはありませんが、パッチ適用関係のようなものに入ると思います)。

だから、ここでちょっとやりすぎたのなら、すみません。 しかし、私の短い答えは、おそらく余分な機能はありませんが、特定の機能をはるかに簡単に処理できるようにする優れたレベルの抽象化があると思います-あなたが今まで手作業でそれをやっていたなら、あなたは確かに何が抽象化されているかを正確に理解するためにOPCの理解を持っている。


2


出発点として、Brian Jones&Zeyadのhttp://blogs.msdn.com/b/brian_jones/archive/2008/10/06/open-xml-format-sdk-2-0.aspx[this]を読んでくださいラジャビのブログ。

並列比較については知りませんが、次の記事/ビデオでこの2つについて説明しています。

最後に、2.0のhttp://msdn.microsoft.com/en-us/library/cc471858.aspx [これは新機能]-1.0とハンドコーディングのどちらにもこれらの利点はないと想定できます。