ドキュメント レベルのカスタマイズの主な目的は、Office ドキュメントのビューからデータを分離することです。 データとは、数値やテキストなど、ドキュメントに格納されている情報を指します。 ビューは、Microsoft Office Word と Microsoft Office Excel のユーザー インターフェイスとオブジェクト モデルを指します。
Visual Studio では、データをデータ アイランド (データ キャッシュとも呼ばれます) として埋め込むことで、ドキュメント レベルのカスタマイズで ビューから データを分離します。 Word や Excel を起動しなくても、データを直接読み取ったり変更したりできます。 これは、Microsoft Office がインストールされていないサーバー上のドキュメント内のデータを変更する必要がある場合に便利です。 Word と Excel は、クライアント環境での使用を目的としています。サーバー上で実行するようには設計されていません。
適用対象: このトピックの情報は、Excel および Word のドキュメント レベルのプロジェクトに適用されます。 詳細については、「 Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。
ドキュメント レベルのカスタマイズの詳細については、 Office ソリューション開発の概要 (VSTO) と ドキュメント レベルのカスタマイズのアーキテクチャに関するページを参照してください。
キャッシュされたデータ プログラミング モデルを理解する
データアイランドには、特定の要件を満たす任意のオブジェクトをソリューションに含めることができます。 これらのオブジェクトには、 DataSet オブジェクト、 DataTable オブジェクト、および XmlSerializer クラスでシリアル化できるその他のオブジェクトが含まれます。 詳細については、「 キャッシュ データ」を参照してください。
キャッシュされたデータのビューを提供するために、ドキュメント上の Windows フォーム コントロールと ホスト コントロール をデータ アイランド内のオブジェクトにバインドできます。 データ アイランドとデータ バインド コントロールの間のデータ バインディングでは、2 つの同期が維持されます。 コントロールに依存しないデータに検証コードを追加することもできます。 詳細については、「 Office ソリューションのコントロールにデータをバインドする」を参照してください。
ホスト コントロールは、Excel および Word オブジェクト モデルのネイティブ オブジェクトの拡張バージョンです。 ネイティブ オブジェクトとは異なり、ホスト コントロールはマネージド データ オブジェクトに直接バインドできます。 詳細については、「 ホスト項目とホスト コントロールの概要 」および 「Office ドキュメントの Windows フォーム コントロールの概要」を参照してください。
サーバー上のキャッシュされたデータにアクセスする
ドキュメント内のキャッシュされたデータにアクセスするには、 ServerDocument クラスを使用できます。 このクラスは Visual Studio Tools for Office ランタイムの一部であり、Excel または Word を実行せずにサーバーで使用できます。 キャッシュされたデータを変更した後でユーザーがドキュメントを開くと、データにバインドされているコントロールが自動的に変更に同期され、更新されたデータがユーザーに表示されます。 詳細については、 サーバー上のドキュメント内のデータへのアクセスを参照してください。
Excel と Word は、サーバー上のデータに書き込む必要はありません。クライアントでデータを表示するためだけに必要です。 Excel と Word をサーバーにインストールする必要もありません。 これにより、スケーラビリティが向上し、データ アイランドを含むドキュメントの高速バッチ処理を実行できます。
オフラインで使用するためのデータ キャッシュ
データアイランドにデータを格納すると、オフラインシナリオが可能になります。 ユーザーが最初にドキュメントを開くか、サーバーからドキュメントを要求すると、データアイランドには最新のデータが入力されます。 データ アイランドはドキュメントにキャッシュされ、オフラインで使用できるようになります。 ライブ接続が利用できない場合でも、ユーザー (およびコード) はデータを操作できます。 ユーザーが再接続すると、データに対する変更をサーバー データ ソースに反映できます。
キャッシュされたデータとカスタム XML 部分の比較
カスタム XML パーツは、任意の XML をドキュメントに格納する方法として、2007 Microsoft Office システムで導入されました。 カスタム XML パーツは、データ キャッシュと同じシナリオの多くで役立ちますが、データ アイランドとカスタム XML パーツにはいくつかの違いがあります。 カスタム XML パーツの詳細については、「 カスタム XML パーツの概要」を参照してください。
次の表に、相違点と類似点の一部を示します。
| 質問/特性 | データ キャッシュ | カスタム XML パーツ |
|---|---|---|
| これらのアプリケーションを使用できる Office アプリケーションはどれですか? | 次のアプリケーションのドキュメント レベルのカスタマイズ: -Excel - 言葉 |
次のアプリケーションのドキュメント レベルおよびアプリケーション レベルのソリューション: -Excel -PowerPoint - 言葉 |
| どのような種類のデータを格納できますか? | 特定の要件を満たすカスタマイズ アセンブリ内のパブリック オブジェクト。 詳細については、「 キャッシュ データ」を参照してください。 | 任意の XML データ。 |
| Microsoft Office アプリケーションを起動せずにデータにアクセスできますか? | はい。Visual Studio Tools for Office ランタイムによって提供される ServerDocument クラスを使用します。 | はい。 System.IO.Packaging 名前空間のクラスを使用するか、Open XML Format SDK を使用します。 |