Open XML SDK Version 2 (Community Technical Preview(CTP) )がリリースされています。
いよいよ、これから Office 2007 で採用されている Open XML ファイルフォーマットについて、このブログで取り扱っていこうと思います。
今まで取り扱ってこなかった理由についてですが、Open XML SDK 自体がそもそもプレビュー版であるということと、(今回のバージョンも実際はそうですが。)かなり、API やサンプルが充実してきていること、実際のリリース時(まだ、もう少し先だとは思いますが。)にそれほど、変化はないであろうということで、Open XML SDK を利用すると開発工数が格段に減るため、いろいろと情報提供していこうと思います。
[利用メリット]
最初に Open XML を利用するメリットについてですが、Open XML のテクノロジを利用することで、いろいろな可能性があります。
1. Office ドキュメントのシステム連携
Open XML ファイルフォーマットベースの Office ドキュメントを XML Web サービスを経由することで、あらゆるバックエンドのシステムと連携することが可能です。
2. サーバーサイドにおける Office ドキュメントの自動生成
これまでもサーバーサイドで Office ドキュメントを自動生成させる多くのニーズがありましたが、Office アプリケーションのサーバーサイドプログラミングはサポートされておりませんでした。
理由はプロセス管理が原因です。複数のプロセスを起動させ、終了させるという工数があるため、可能なのですがノンサポートの領域でした。
Open XML では Office アプリケーションのプロセスを生成しなくても、ドキュメント生成が可能となります。
また、SharePoint Server のテクノロジを利用することで、Excel ファイルを Web ベースで確認することが可能です。
3. 差分管理が必要な Office ドキュメントの履歴管理
差分管理が必要なドキュメントは世の中に非常に多いかと思うのですが、それらのドキュメントのデータの変更履歴をデータベースに保存し文書のデータレベルの版管理をおこなうことが可能です。
4. カスタム定義の XML をドキュメントと連携
以前のバージョンの Office ドキュメントでは XML 連携はできましたが、XML ファイルをドキュメント内に取り込んで利用することはできませんでした。
Open XML ファイルフォーマットではカスタム定義の XML データをドキュメント内に取り込んで取り扱うことができます。
というようにこれら以外にもいろいろと利用ニーズはあり、最近はこれらの開発要素に関して質問をいただくことが多くなりました。
現時点での Open XML テクノロジを扱える開発ベンダーは以下に情報がありますので。ご参考までご確認いただければと思います。
お客さま導入事例
https://www.microsoft.com/japan/interop/openxml/casestudy.mspx
[Open XML SDK V2(CTP) について]
ちなみに、Community Technical Preview(CTP) とは Microsoft 製品でよく見にされる方が多いとは思うのですが、
コミュニティ向け技術評価版という意味です。
現時点でも基本的には以下のクラスを利用することで、Open XML の開発は可能です。
ただ、コーディングの量が多くなるのは否めません。
- System.IO.Packaging
Open XML ファイルフォーマットの生成やリレーションシップの取り扱いなどのクラス
.NET Framework 3.0 以降より、利用可能
- System XML
XML 取り扱いのクラスによるストリームや DOM の利用
※LINQ to XML を利用して XML コーディングを少し楽にできるところもあります。
[利用手順]
Visual Studio 2008 における利用手順についてですが、下記から、Open XML SDK v2 をダウンロードします。
Open XML Format SDK 2.0
※現時点で英語版とフランス語版ですが、VS 2008 の日本語版で利用可能です。
必須条件としてはダウンロードサイトをご確認ください。.NET Framework 3.5 は必要です。
既定で以下の場所に保存されますので、ヘルプファイル(CHMファイル)にサンプルとリファレンスが保存されています。
C:\Program Files\Open XML Format SDK\V2.0
また、Open XML クラスの実態として、DocumentFormat.OpenXml.dll も保存されますので、Open XML クラスを利用するにはこのファイルの参照の追加が必要です。
ということで、これから、Open XML についてもいろいろと技術訴求できればと思います。
次回は VSTO と Open XML に関して公開されているサンプルについて、ご紹介させていただければと思います。