(57)【要約】【課題】そのファイルフォーマットを作ったアプリケーションプログラムを使わずに、これらのファイルフォーマットで作業可能にする。【解決手段】モジュールコンテンツのフレームワークは、モジュールパーツに関連付けられているファイルフォーマットのコンテナを含む。ファイルフォーマットは、ひとつまたは複数のリレーションシップによって相互に関連付けられている、論理的に分離したモジュールパーツを含み、各モジュールパーツは、あるリレーションシップタイプに関連付けられる。【選択図】図２ａ
2006178946.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシートアプリケーションにおいてワークブックを表現するためのファイルフォーマットであって、コンピューティング装置内に実装されるモジュールコンテンツのフレームワークの中で前記ワークブックを表現するファイルフォーマットにおいて、
論理的には分離しているが、ひとつまたは複数のリレーションシップによって関連付けられているモジュールパーツを備え、
各モジュールパーツは１つのリレーションシップタイプに関連付けられ、
前記モジュールパーツは、
前記ワークブックのプロパティのガイドとして動作するワークブックパーツと、少なくとも、
前記ワークブックパーツと関連付けられるワークシートパーツであって、該ワークシートパーツと関連付けられているワークシート内のセルの定義を特定するよう動作するワークシートパーツと、
マクロシートと関連付けられているデータを含むシートパーツと、
チャートの定義に関連付けられているデータを含むチャートシートパーツと、
ワークブックダイアログに関連付けられているデータを含むダイアログシートパーツ
の中の１つを含み、
前記各モジュールパーツは、スプレッドシートアプリケーションを使用せず、他のモジュールパーツへの問い合わせを行わずに、別個にインタロゲートすることが可能なことを特徴とするファイルフォーマット。
【請求項２】
請求項１に記載のファイルフォーマットにおいて、
前記モジュールコンテンツのフレームワークは、前記モジュールパーツに関連付けられるファイルフォーマットのコンテナを含み、前記モジュールパーツはさらに、
前記ファイルフォーマットに関連付けられているビルトアップのプロパティを含む文書プロパティパーツと、
前記ファイルフォーマットに関連付けられているサムネイルを含むサムネイルパーツと
を含むことを特徴とするファイルフォーマット。
【請求項３】
請求項１に記載のファイルフォーマットにおいて、
再利用する前記モジュールパーツのリレーションシップをたどることによって、各前記モジュールパーツを、前記ワークブックから抽出し、またはコピーし、特定される関連モジュールパーツと一緒に別のワークブックの中で再利用可能とすることを特徴とするファイルフォーマット。
【請求項４】
請求項３に記載のファイルフォーマットにおいて、
前記モジュールパーツはさらに、
前記ノートブックの中のテーマを表わすスタイルシートパーツと、
前記ワークブックの中のセルレベルでのスタイルと関連付けられているデータを含むスタイルパーツと、
前記ワークブックに関連付けられているコメントを含むコメントパーツと、
前記ワークブックに関連付けられているマークアップ言語を記述するビジュアルを含むマークアップマップパーツと、
前記マークアップマップパーツに関連付けられているスキーマを含むスキーマパーツと、
前記ワークブック内の複数のセルに関連付けられているストリングを含む共有ストリングパーツと、
前記ワークブックとのインタフェースに関連付けられているデータを含むワークブック接続パーツと、
前記ワークブックのユーザが前記ワークブックを電子メールによって送った場合のエンベロープデータを含むメールエンベロープパーツと、
前記ワークブックに関連付けられているコードを含むコードファイルパーツ
のうちの少なくともひとつを含むことを特徴とするファイルフォーマット。
【請求項５】
請求項４に記載のファイルフォーマットにおいて、
前記モジュールパーツはさらに、
前記ワークブックに関連付けられている画像データを含む画像パーツと、
前記ワークブックに関連付けられているオブジェクトを含む埋め込みオブジェクトパーツと、
前記ワークブックの中に読み込み、変更することの可能なカスタマイズデータを含むユーザデータパーツと、
描画プラットフォームを使って構築されたオブジェクトを含む描画オブジェクトパーツ
のうちの少なくともひとつを含むことを特徴とするファイルフォーマット。
【請求項６】
請求項５に記載のファイルフォーマットにおいて、
前記モジュールパーツはさらに、
前記ワークシートに関連付けられているテーブルインデックスを定義するデータを含むテーブルインデックスパーツと、
前記ワークシートに関連付けられているリストを定義するデータを含むリストパーツと、
前記ワークシートに関連付けられているピボットテーブルを定義するデータを含むピボットテーブルパーツと、
前記ピボットテーブルに関連付けられているキャッシュを定義するデータを含むピボットキャッシュ定義パーツと、
前記ピボットキャッシュ定義パーツに関連付けられているデータを含むピボットキャッシュレコードパーツ
のうちの少なくともひとつを含むことを特徴とするファイルフォーマット。
【請求項７】
請求項６に記載のファイルフォーマットにおいて、
前記モジュールパーツの少なくともいくつかは、コレクションタイプで編成され、前記コレクションタイプは、
前記チャートシートパーツを含むチャートシートコレクションと、
前記ダイアログシートパーツを含むダイアログシートコレクションと、
前記ワークシートパーツを含むワークシートコレクションと、
前記ピボットテーブルパーツを含むピボットコレクションと、
前記ピボットキャッシュ定義パーツと前記ピボットキャッシュレコードパーツのうちの少なくともひとつを含むピボットキャッシュコレクションと、
前記スタイルシートパーツと前記スタイルパーツのうちの少なくともひとつを含むピボットキャッシュコレクションと、
前記マークアップマップパーツを含むマークアップマップと、
前記リストパーツを含むリストコレクションと、
前記埋め込みオブジェクトパーツと前記ユーザデータパーツのうちの少なくともひとつを含む埋め込みデータコレクション
のうちの少なくともひとつを含むことを特徴とするファイルフォーマット。
【請求項８】
請求項３に記載のファイルフォーマットにおいて、
前記モジュールパーツに関連付けられているリレーションシップタイプは、コードファイルを特定できるコードファイルのリレーションシップ、ユーザデータのリレーションシップ、ハイパーリンクのリレーションシップ、スタイルシートのリレーションシップ、コメントのリレーションシップ、埋め込みオブジェクトのリレーションシップ、描画オブジェクトのリレーションシップ、画像のリレーションシップ、メールエンベロープのリレーションシップ、文書プロパティのリレーションシップ、サムネイルのリレーションシップ、スキーマのリレーションシップ、チャートシートのリレーションシップ、ダイアログシートのリレーションシップ、ワークシートのリレーションシップ、ピボットテーブルのリレーションシップ、共有ストリングのリレーションシップ、リストのリレーションシップ、ピボットキャッシュレコードのリレーションシップ、スタイルのリレーションシップ、マークアップマップのリレーションシップ、ピボットキャッシュメタデータのリレーションシップの少なくともひとつであることを特徴とするファイルフォーマット。
【請求項９】
請求項３に記載のファイルフォーマットにおいて、
前記ワークシートの内容は、前記ワークブックから抽出するか、コピーし、別のワークブックで再利用できることを特徴とするファイルフォーマット。
【請求項１０】
請求項３に記載のファイルフォーマットにおいて、
各モジュールパーツは、他のモジュールパーツがロック可能であるときに別個にロックすることができ、これによって複数のエディタがそれぞれ同時に前記ファイルフォーマットのモジュールパーツを編集可能とすることを特徴とするファイルフォーマット。
【請求項１１】
請求項３に記載のファイルフォーマットにおいて、
前記モジュールパーツは、あるモジュールパーツに問い合わせが行われるときに前記ワークブック内の内容に関する意味を提供可能とすることを特徴とするファイルフォーマット。
【請求項１２】
請求項３に記載のファイルフォーマットにおいて、
前記モジュールパーツの少なくともひとつは、前記ワークブックのオーサリングコンテンツにおいてオーサリングされ、前記ワークブックの中の前記ひとつのモジュールパーツを、前記ワークブックから抽出するか、コピーし、別のワークブックに移動することが可能で、前記少なくともひとつのモジュールパーツを、さらに、前記少なくともひとつのモジュールパーツが前記別のワークブックのオーサリングコンテクストの中でオーサリングされたかのように見えるよう変更可能であることを特徴とするファイルフォーマット。
【請求項１３】
請求項３に記載のファイルフォーマットにおいて、
前記ファイルフォーマットは、前記ワークブック内の各ワークシートの高解像度のサムネイルプレビューを提供可能であることを特徴とするファイルフォーマット。
【請求項１４】
請求項１に記載のファイルフォーマットにおいて、
前記ファイルフォーマットは、マークアップ言語フォーマットとバイナリフォーマットの少なくともひとつにしたがってフォーマットされていることを特徴とするファイルフォーマット。
【請求項１５】
ファイルフォーマットにおいてワークブックを表現する方法において、前記ワークブックに関連付けられているモジュールパーツは、前記ファイルフォーマットの中に書き込まれた各パーツを含み、前記方法は、
前記ファイルフォーマットのワークブックパーツを書くステップと、
前記ワークブックパーツについて、ワークシートリレーションシップタイプを照会するステップと、
前記ワークブックパーツとは分離して、前記ファイルフォーマットのワークシートパーツを書くステップと、
前記ワークシートパーツと前記ワークブックパーツとの間のリレーションシップを確立するステップと、
を含むことを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において、さらに、
前記ワークブックパーツとファイルフォーマットのコンテナとの間のリレーションシップを確立するステップを含み、前記ファイルフォーマットのコンテナは、
前記ファイルフォーマットに関連付けられているビルトアップのプロアティを含む文書プロパティパーツと、
前記ファイルフォーマットに関連付けられているサムネイルを含むサムネイルパーツ
のうちの少なくともひとつを含むことを特徴とする方法。
【請求項１７】
請求項１５に記載の方法において、さらに、
リレーションシップタイプに関連付けられている他のモジュールパーツを書くステップと、共有される予定の前記他のモジュールパーツは１回だけ書かれ、
前記書かれた他のモジュールパーツに対するリレーションシップを確立するステップと、
を含むことを特徴とする方法。
【請求項１８】
請求項１７に記載の方法において、
前記リレーションシップタイプに関連付けられている前記他のモジュールパーツを書くステップは、
ａ）前記ワークブックに関連付けられているデータを検査するステップと、
ｂ）前記検査されたデータがあるモジュールパーツにすでに書かれているか否かを判断するステップと、
ｃ）前記検査されたデータが前記モジュールパーツにまだ書かれていなければ、前記検査されたデータを含めるように前記モジュールパーツを書き、前記ワークブックに関連付けられている他のデータを検査し、ｂ）からｄ）を繰り返すステップと、
ｄ）前記検査されたデータが前記モジュールパーツにすでに書かれていれば、前記ワークブックに関連付けられている他のデータを検査し、ｂ）からｄ）を繰り返すステップと
を含むことを特徴とする方法。
【請求項１９】
コンピュータに、モジュールパーツを含むファイルフォーマットでワークブックを表現させる制御ロジックが記憶されているコンピュータ読取可能媒体を備えるコンピュータプログラム製品において、前記ファイルフォーマットの前記モジュールパーツは、前記ファイルフォーマットの中に書き込まれた各パーツを含み、前記制御ロジックは、前記コンピュータに、
前記ファイルフォーマットのワークブックパーツを書かせ、
前記ワークブックパーツについて、ワークシートのリレーションシップタイプを照会させ、
前記ワークブックパーツから分離した前記ファイルフォーマットのワークシートパーツを書かせ、
前記ワークシートパーツと前記ワークブックパーツとの間のリレーションシップを確立させる
ためのコンピュータ読取可能プログラムコードであることを特徴とするコンピュータプログラム製品。
【請求項２０】
請求項１９に記載のコンピュータプログラム製品において、
前記ファイルフォーマットは、マークアップ言語で書かれたマークアップファイルフォーマットとバイナリフォーマットのうちの少なくともひとつであることを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にファイルフォーマットに関し、より詳しくは、コンポーネント化（componentized）されたスプレッドシートアプリケーションプログラム（注．表計算プログラム）においてワークブックのフィーチャ（注．たとえば、属性などで示される特性）とデータを表現するための方法とファイルフォーマットに関する。
【背景技術】
【０００２】
情報世代は、スプレッドシートソフトウェアアプリケーションを利用して情報スプレッ
ドシートを作成する時代を実現しやすくしてきた。しかしながら、従来のスプレッドシートのファイルフォーマット内のフィーチャとデータの編集は、外部のプログラマや開発者にとって非常にわかりにくく、不明確である。たとえば、従来のスプレッドシートのファイルフォーマットは、ワークブックをレンダリングするのに必要な情報のすべてを含むバイナリレコードフォーマットを使い、シングルファイルの形で作成される。これらのシングルファイルを作るためには独自のフォーマットが一般に使用されるため、そのファイルフォーマットを作ったアプリケーションプログラムを使わずに、これらのファイルフォーマットで作業し、これにアクセスするためのコードを書くことは、プロの開発者にとって悪夢である。
【０００３】
別の問題は、基本的な文書やワークシートの再利用である。たとえば、あるワークブックファイルから１枚または複数のワークシートを抽出し、抽出されたワークシートを別のワークブックで再利用し、ワークシートの全体性を保持することは、たとえ同じアプリケーションの中であっても非常に難しい。比較の問題であるが、異なるアプリケーション間でのワークシートの再利用となると、さらに困難である。１枚のワークシート上の内容を再利用すること、たとえばＥＸＣＥＬ（登録商標）の表をＷＯＲＤに再利用することも同様に困難である。
【０００４】
さらに、シングルファイルフォーマットであることから、ワークブックの一部をロックすることは現実的に不可能である。ファイルロッキングに関する技術のほとんどは、すべてファイルレベルで行われるため、ファイルがユーザによってロックされると、他のユーザはそのファイルを編集することができない。閲覧は可能であるが、編集はできない。
【０００５】
また、文書のインタロゲーション（注．関連する情報を提供すること）の問題もある。ワークブックファイル内の内容を見つけること、たとえば、２００４年の売上予測のワークシートを見つけることは、骨の折れる仕事である。ワークブックを作ったものと同じスプレッドシートアプリケーションを使用せずに、スプレッドシートファイルのセルＡ１をプログラムで見つけ、そのセルの内容（ストリング数値、公式、計算結果）を判断するコードを書くことは困難である。シングルファイルフォーマットのプレゼンテーションの一パーツを見つけ、内容に関する意味（semantics）を判断することもまた非常に難しい。たとえば、スプレッドシートアプリケーションの中でデータリストをプログラムによって位置指定し、そのスプレッドシートアプリーションを使用せずに、リストに３行のデータを追加するコードを書くことは難しい。
【０００６】
既存のバイナリファイルフォーマットをうまく扱うことのできる読み書き（リーダおよびライタ）のクラスを実装することは依然として困難である。あるアプリケーションをターゲットとしたツールが開発されたとしても、これですべての文書フォーマットのインタロゲーションができるわけではないであろう。この問題は、シングルファイルフォーマットの不透明性と呼ばれる。
【０００７】
またさらに、データの混同により、あるワークシートまたは複数のワークシートの名前をつけなおすことは、同じスプレッドシートのアプリケーション以外ではほとんど不可能である。再びワークシートブランドするには、そのワークシートが同じテキストベースのフォーマットを持つワークブックＢの通常のオーサリングコンテクストでオーサリングされたかのように、ワークブックＡからあるワークシートを取り、これをワークシートＢに移す。
【０００８】
文書のサーフェシング、つまり、ワークシート文書の一部を取り、これを別のアプリケーションの別の文書の中に入れる能力もまた、問題である。たとえば、プレゼンテーション文書の中にコピーされたスプレッドシートは、シングルファイルフォーマットの中でインタロゲートするのが難しい。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、業界には、上記の欠点や不適切さに対応する必要性があり、まだこれについては取り組みが行われていない。
【課題を解決するための手段】
【００１０】
本発明の実施形態は、コンピューティング装置の中に実装されるモジュールコンテンツのフレームワークのワークブックを表現するためのファイルフォーマット、方法およびコンピュータプログラム製品を提供する。本発明の実施形態は、拡張マークアップ言語（ＸＭＬ）ファイルフォーマットおよび／またはバイナリファイルフォーマット等のオープンスタンダードに基づくファイルフォーマットと、ワークブックのフィーチャとデータをスプレッドシートアプリケーションファイル内で編集し、モデリングする方法を開示する。ファイルフォーマットは、それがいくつかのコレクションやパーツで構成されるように設計される。各コレクションはフォルダとして機能し、各モジュールパーツはファイルとして機能する。これらの別個に分離されたファイル（分離ファイル）は、互いにリレーションシップ（注．たとえば、リンクなどのような相互の関係を表すこと）と関連付けられる。このリレーションシップでは、各分離ファイルはリレーションシップのタイプと関連付けられる。この設計により、スプレッドシートアプリケーションがワークブックのフィーチャとデータを編集する方法が大幅に簡略化され、わかりにくさがずっと軽減された論理モデルが提示される。
【００１１】
ひとつの実施形態は、モジュールコンテンツフのレームワークの中でワークブックを表現するためのファイルフォーマットである。モジュールコンテンツのフレームワークは、モジュールパーツに関連付けられているファイルフォーマットのコンテナを含む。ファイルフォーマットは、論理的には分離しているが、ひとつまたは複数のリレーションシップによって相互に関連付けられているモジュールパーツを含む。各モジュールパーツはあるリレーションタイプに関連付けられ、および各モジュールパーツは、ワークブックパーツ、すなわち、ワークブックのプロパティのためのガイドとして動作するワークブックパーツを含む。モジュールパーツは、また、ワークシートパーツ、すなわち、動作してワークブックパーツに関連付けられたワークシート内のセルの定義を特定するワークシートパーツを含む。ある１つのシートパーツはマクロシートに関連するデータを含み、ある１つのチャートシートパーツはチャートの定義に関連付けられているデータを含み、および／または、ある１つのダイヤログパーツはワークブックダイアログに関連付けられているデータを含む。スプレッドシートアプリケーションの有無を問わず、また他のモジュールパーツに問い合わせを行わずに、各モジュールパーツを別個にインタロゲートすることができ、これにより、ワークブックのクエリ（注．問い合わせや照会）が行われるときの効率が改善される。
【００１２】
モジュールパーツは、また、文書プロパティパーツおよびサムネイルパーツを含んでもよい。文書プロパティパーツはファイルフォーマットに関連付けられているビルトアップ（ｂｕｉｌｔ−ｉｎ）のプロパティを含み、サムネイルパーツは１つまたは複数のサムネイルを含む。再利用されるモジュールパーツのリレーションシップをたどることによって各モジュールパーツを、ワークブックから抽出し、および／またはコピーすることができる。また、特定される、関連のモジュールパーツとともに、各モジュールを別のワークブックで再利用することも可能である。
【００１３】
別の実施形態はファイルフォーマットの中のワークブックを表現する方法であり、ワークブックに関連付けられているモジュールパーツは、ファイルフォーマットの中に書き込まれる各パーツを含む。この方法は、ファイルフォーマットのワークブックパーツを書くステップと、そのワークブックについてワークシートのリレーションシップタイプを照会（クエリ）するステップと、そのワークブックパーツとは分離したファイルフォーマットのワークシートパーツを書くステップとを含む。この方法はまた、ワークシートパーツとワークブックパーツとの間のリレーションシップを確立するステップも含む。さらに、この方法は、ワークブックパーツとファイルフォーマットのコンテナとの間のリレーションシップを確立するステップを含んでいてもよく、この場合、ファイルフォーマットのコンテナは、ファイルフォーマットに関連付けられているビルトアップのプロパティを含む文書プロパティパーツと、ファイルフォーマットに関連付けられているサムネイルを含むサムネイルパーツを含む。
【００１４】
またさらに、この方法は、リレーションシップタイプに関連付けられるモジュールパーツを書くステップを含んでいてもよく、共有されるモジュールパーツは１回だけ書かれ、さらに、書かれたモジュールパーツとのリレーションシップを確立するステップを含んでいてもよい。モジュールパーツを書くステップには、ワークブックに関連付けられているデータを検査するステップと、検査されたデータがすでにモジュールパーツに書かれているか否かを判断するステップと、検査されたデータがそのモジュールパーツに書かれていない場合は、検査されたデータを含むようにモジュールパーツを書くステップを含んでいてもよい。
【００１５】
さらに別の実施形態は、コンピュータに、ファイルフォーマットのモジュールパーツがそのファイルフォーマットの中に書き込まれた各パーツを含むようなファイルフォーマットの中でワークブックを表現させるための制御論理が記憶されているコンピュータ読取可能媒体を含むコンピュータプログラム製品である。制御論理は、コンピュータに、ファイルフォーマットのワークブックパーツを書き、そのワークブックについて、ワークシートのリレーションシップタイプを照会し、ワークブックパーツとは分離してファイルフォーマットのワークシートパーツを書き、ワークシートパーツとワークブックパーツとのリレーションシップを確立するようにさせるコンピュータ読取可能プログラムコードを含む。
【００１６】
本発明は、コンピュータプロセス、コンピューティングシステムを利用して、または、コンピュータプログラム製品またはコンピュータ読取可能媒体等の製品として実現することができる。このコンピュータプログラム製品は、コンピュータシステムによって読み取られ、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化するコンピュータ記憶媒体とすることができる。このコンピュータプログラム製品はまた、コンピューティングシステムによって読み取られ、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化する搬送波上の伝播信号であってもよい。
【００１７】
本発明を特徴付ける、上記の、および上記以外の各種の特徴と利点は、以下の詳細な説明を読み、関係する図面を参照することから明らかとなる。
【発明を実施するための最良の形態】
【００１８】
図面を参照すると、類似した参照番号で同様の素子が示され、本発明の各種の態様が描かれている。特に、図１とこれに対応する説明文は、本発明の実施形態を実現するのに適したコンピューティング環境を、簡潔に、一般的に説明するためのものである。本発明は、パーソナルコンピュータ上のオペレーティングシステムで動作するプログラムモジュールに関連して実行するプログラムモジュールという一般的文脈において説明するが、当業者は、本発明が別のタイプのコンピュータシステムやプログラムモジュールとともに実現可能であると認識するであろう。
【００１９】
一般に、プログラムモジュールは、ルーチン、プログラム、オペレーション、コンポーネント、データ構造体（データストラクチャ）および、他の種類の構造体、すなわち、特定のタスクを実行し、または特定の抽象データタイプを実現するその他の種類の構造体を含む。さらに、当業者は、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータその他をはじめとするその他のコンピュータシステム環境でも実現できることを推測できるであろう。本発明はまた、タスクタスクが通信ネットワークを通じて連結されたリモート処理デバイスによって実行される分散型コンピューティング環境においても実現できる。分散型コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイスのいずれにも設置することができる。
【００２０】
図１を参照しながら、本発明の実施形態において利用されるコンピュータ２のためのコンピュータアーキテクチャの例について説明する。図１に示されるコンピュータアーキテクチャは、中央処理ユニット（ＣＰＵ）５、ランダムアクセスメモリ（ＲＡＭ）９とリードオンリメモリ（ＲＯＭ）１１を含むシステムメモリ７、メモリをＣＰＵ５に連結するルシステムバス１２を備えるサーバ、デスクトップ、ラップトップまたはハンドヘルドコンピュータ装置等のコンピューティング装置を示している。立ち上げ中等にコンピュータ内の素子間の情報送信を支援する基本ルーチンを含む基本的入出力システムがＲＯＭ１１の中に記憶されている。コンピュータ２はさらに、オペレーティングシステム１６、アプリケーションプログラムおよびその他のプログラムモジュールを含む大容量記憶デバイス１４も備える。
【００２１】
大容量記憶デバイス１４は、バス１２に接続された大容量記憶コントローラ（図示せず）を通じてＣＰＵ５に接続されている。大容量記憶デバイス１４とこれに関係するコンピュータ読取可能媒体は、コンピュータ２のための不揮発性記憶装置となる。本明細書に含まれるコンピュータ判読可能媒体の説明は、ハードディクスやＣＤ−ＲＯＭドライブ等の大容量記憶デバイスに関するものであるが、当業者は、コンピュータ読取可能媒体はコンピュータ２によってアクセス可能ないかなる入手可能な媒体であってもよいと推測するはずである。
【００２２】
たとえば、これに限定されないが、コンピュータ読取可能媒体は、コンピュータ記憶媒体と通信媒体であってもよい。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造体、プログラムモジュールその他のデータをはじめとする、情報記憶のためのいずれかの方法や技術において実現される揮発性および不揮発性の、取り外し可能および取り外し不能媒体を含む。コンピュータ記憶媒体には、たとえば、ＲＡＭ，ＲＯＭ，ＥＰＲＯＭ，ＥＥＰＲＯＭ、フラッシュメモリもしくはその他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＪＳ）もしくはその他の光記憶手段、磁気カセット、磁気テープ、磁気ディスク記憶手段もしくはその他の磁気記憶デバイス、または所望の情報を記憶するのに使用でき、コンピュータ２によってアクセス可能なその他の媒体が含まれる。
【００２３】
本発明の各種の実施形態によれば、コンピュータ２はインターネット等、ネットワーク１８を通じたリモートコンピュータとの論理接続を使ったネットワーク環境で動作するかもしれない。コンピュータ２は、バス１２に接続されたネットワークインタフェースユニット２０を通じてネットワーク１８に接続される。ネットワークインタフェースユニット２０はまた、他のタイプのネットワークやリモートコンピュータシステムとの接続にも使用することができる。コンピュータ２はまた、キーボード、マウスまたは電子ペン（図１には示されない）等のさまざまなその他のデバイスからの入力を受け、処理する入出力コントローラ２２を備えていてもよい。同様に、入出力コントローラ２２は、ディスプレイスクリーン、プリンタまたはその他のタイプの出力デバイスへの出力を供給してもよい。
【００２４】
先に簡単に記したように、ワシントン州レッドモンドのマイクロソフト社のＷＩＮＤＯＷＳ(登録商標)  ＸＰオペレーティングシステム等、ネットワークパーソナルコンピュータの動作の制御に適したオペレーティングシステム１６を含め、多数のプログラムモジュールやデータファイルがコンピュータ２の大容量記憶デバイス１４とＲＡＭ９に記憶される。大容量記憶デバイス１４とＲＡＭ９はまた、ひとつまたは複数のプログラムモジュールを記憶する。特に、大容量記憶デバイス１４とＲＡＭ９は、スプレッドシートアプリケーションプログラム１０を記憶する。スプレッドシートアプリケーションプログラム１０は、ＸＭＬファイルフォーマット等、オープンファイルフォーマット２４の中で、ワークブック２７等のワークブックを作成し、構成するための機能を提供するよう動作する。本発明のひとつの実施形態によれば、スプレッドシートアプリケーションプログラム１０とその他のアプリケーションプログラム２６は、ＷＯＲＤ（登録商標），ＥＸＣＥＬ（登録商標）およびＰＯＷＥＲＰＯＩＮＴ（登録商標）のアプリケーションプログラムを含む、マイクロソフト社のアプリケーションプログラムのＯＦＦＩＣＥ（登録商標）である。
【００２５】
本発明の実施形態は、ワークブックのフィーチャとデータの編集を大幅に簡略化し、明確にする。スプレッドシートプログラム１０は、ワークブックファイルの「パーツ」（フィーチャ、データ、テーマ、スタイル、オブジェクトその他）を、論理的な分離した要素に編集し、次に、複数の分離したパーツの間のリレーションシップを表現する。これらのリレーションシップと、ワークブックの「パーツ」の論理的に分離することによって、スプレッドシートアプリケーションそのものを使用せずに、たとえば開発者のコード等によって、簡単にアクセスできる新しいファイル編集が可能となる。
【００２６】
次に、図２ａ−２ｃを参照し、本発明の各種の実施例によるワークブックを表現するためのファイルフォーマット２４で利用される種々のモジュールパーツに関するワークブックリレーションシップのヒエラルキを説明するブロック図について説明する。ワークブックリレーションシップのヒエラルキ２０８は、具体的なスプレッドシートアプリケーションのリレーションシップをリスト（列記）したものである。オプションによる認証に関する李エーションシップをイタリック体で示し、点線の接続線２０３は、１対多数のリレーションシップを示す。したがって、たとえば、ワークブック２０２に関連付けられている各ワークシートに関するワークシートパーツ２１７がある。
【００２７】
プレゼンテーションヒエラルキ２０８の各種のモジュールパーツまたはコンポーネントは論理的には分離しているが、ひとつまたは複数のリレーションシップによって関連付けられている。各モジュールパーツはまた、リレーションシップタイプと関連付けられており、スプレッドシートアプリケーションプログラム１０の有無にかかわらず、および／または他のモジュールパーツへの問い合わせの有無にかかわらず、別個に問い合わせを行うことができる。したがって、たとえば、すべてのバイナリレコードについてセル情報を検索する代わりに、ファイルフォーマット２４の中の他の特徴とデータを有効に無視し、ワークブックの中のリレーションシップを容易に点検し、そのワークシートパーツを見つけるコードを書くことができるため、ワークシートセルの内容を探し出すことが容易になる。このように、従来の問い合わせコードよりはるかに簡単な方法でセル内に階層をつけるようなコードが書かれる。さらに、開発者が新しいパーツを挿入するため、またはスプレッドシートアプリケーションを実行せずに完全に新しいファイルを挿入するためのコードを書く、「オーサリング」の場合も、モジュールパーツファイルフォーマットによって簡略化される。
【００２８】
モジュールコンテンツのフレームワークには、モジュールパーツに関連付けられているファイルフォーマットのコンテナ２０４が含まれる。モジュールパーツには、ワークブックのフィーチャのためのガイドとして動作するワークブックパーツ２０２と、ワークブックパーツ２０２に関連付けられているワークシートパーツ２１７が含まれる。ワークシートパーツ２１７は、そのワークシートパーツ２１７に関連付けられているワークシート内のセルの定義を特定するよう動作する。ワークブックのヒエラルキ２０８にはまた、ファイルフォーマット２４に関連付けられているビルトアップのプロパティを含む文書プロパティパーツ２０５と、ファイルフォーマット２４に関連付けられているサムネイルを含むサムネイルパーツ２０７が含まれている。
【００２９】
モジュールパーツはまた、マクロシートに関連付けられているデータを含むシートパーツ２１０、チャートの定義に関連付けられているデータを含むチャートシートパーツ２１２、ワークブック内のテーマを表わすスタイルシートパーツ２４０を含む。
【００３０】
再利用されるモジュールパーツのリレーションシップをたどることによって各モジュールパーツを、ワークブックから抽出し、および／またはコピーすることができ、また、再利用されるモジュールパーツのリレーションシップをたどることによって特定される、関連のモジュールパーツとともに、各モジュールを別のワークブックで再利用することも可能であると理解すべきである。関連のモジュールパーツは、スプレッドシートアプリケーション１０が再利用されるモジュールパーツの入るものと出るもののリレーションシップをたどることにより特定される。
【００３１】
他のモジュールパーツには、ワークブック内のセルレベルでのスタイルに関連付けられているデータを含むスタイルパーツ２２０、ワークブックダイアログに関連付けられているデータを含むダイアログシートパーツ２１４、ワークブックに関連付けられているマークアップ言語フォーマットを表わすビジュアルを含むマークアップマップパーツ２１８、およびワークブック内の複数のセルに関連付けられているストリングを含む共有ストリングパーツ２２２が含まれる。さらに別のモジュールパーツには、ワークブックとのインタフェースに関連付けられているデータを含むワークブック接続パーツ２２４、バックグラウンドピクチャパーツ２２５、ワークブックのユーザが電子メールを通じてそのワークブックを送信したエンベロープデータを含むメールエンベロープパーツ２４２、ワークブックに関連付けられるコードを含むコードファイルパーツ２４４と、ワークブックに関連付けられているコメントを含むコメントパーツ２４７がある。
【００３２】
さらに、モジュールパーツには、マークアップマップパーツ２１８に関連付けられているスキーマを含むスキーマパーツ２５４、ワークブックに関連付けられている画像データを含む画像パーツ２４８と、ワークブックに関連付けられているオブジェクトを含む埋め込みオブジェクトパーツ２３０が含まれる。他のモジュールパーツにはまた、ワークブックの中に読み込み、変更することができるカスタマイズされたデータを含むユーザデータパーツ２４５、描画プラットフォームを使って構築されるオブジェクトを含む描画オブジェクトパーツ２５２、ワークシートに関連付けられているテーブルインデックスを定義するデータを含むテーブルインデックスパーツ２３２と、ワークシートに関連付けられているリストを定義するデータを含むリストパーツ２２８が含まれる。たとえば、本発明の実施形態により、ワークブック内のリストを発見しやすくなる。なぜなら、どのリストにも、ファイルフォーマット２４の中で分離したリストパーツ２２８があり、これに対応するリレーションシップが表現されているからである。リストパーツ２２８は、他のモジュールパーツと同様に、論理的に分割され、ワークブックの他のフィーチャやデータから分離されている。さらに、リストの論理的構造は明確に理解されるため、リストにデータの行を追加する際の複雑さが軽減される。
【００３３】
ワークブックに関連付けられている他のモジュールパーツには、ワークシートに関連付けられているピボットテーブルを定義するデータを含むピボットテーブルパーツ２３４、ピボットテーブルに関連付けられているキャッシュを定義するデータを含むピボットキャッシュ定義パーツ２３５、ピボットキャッシュ定義パーツに関連付けられているデータを含むピボットキャッシュレコードパーツ２３７が含まれる。ピボットテーブルは、所望のレポートを得るために、スプレッドシートまたはデータベーストテーブルの中の選択されたデータの列と行を再編集し、まとめることを可能にするプログラムツールである。ピボットテーブルは、データを回転させ、異なる視点からこれを見せる。複数のリレーションシップにおいて共有されるモジュールパーツは通常、１回だけファイルに書かれると理解すべきである。特定のモジュールパーツはグローバルであり、したがって、ファイルフォーマットのどこにおいても特定のモジュールパーツを使用できることも理解すべきである。これに対し、モジュールパーツの中には、ノングローバルであり、そのために、限定的にしか共有できないものもある。
【００３４】
本発明の各種の実施形態において、ファイルフォーマット２４は、拡張マークアップ言語（ＸＭＬ）および／またはバイナリフォーマットにしたがってフォーマットされてもよい。当業者であれば理解できるように、ＸＭＬは、データ通信のための標準フォーマットである。ＸＭＬデータフォーマットにおいて、通信されるデータのタイプと構成に適用される文法およびデータタイプに関する一連のルールをＸＭＬデータに与えるために、スキーマが使用される。ＸＭＬデータフォーマットは当業者にとって周知であるため、ここでは詳しく説明しない。ＸＭＬフォーマットは、ワークブック全体の内部メモリ構造をよく反映している。そのため、ローディングや保存の速度が増加することは明らかである。
【００３５】
本発明の実施形態により、ワークブックはプログラムによるアクセスがよりしやすいものとなる。その結果、従来のファイルフォーマットでは非常に困難であった数多くの新しい用途が実現可能となる。たとえば、本発明の実施形態を利用することで、サーバ側のプログラムは、誰かのためのワークブックを、その人の入力に基づいて作成することができる。たとえば、Ａ社の２００４年１月１日から２００４年１２月３１日の期間に関する分析レポートを、その中のすべての可変入力値をイタリックで示しているが、その分析レポートを作成することができる。
【００３６】
他の例では、外部プロセスが、会社のロゴや視覚的なカラースキームをアップデートするために、外部のプロセスがネットワーク上のすべてのワークブックをスキャニングして書き直すこと、ひとつのワークブックの中のチャートをプログラムによってコピーし、他のワークブックの中に挿入すること、および毎晩ワークブックから計算結果を呼び出し、更新してデータベースに入れることを行なう。さらに別の例では、政府機関がワークブックを加工し、そのフィーチャとデータとを自分たちの内部のテキストベースのフォーマットに変換することも容易にできる。
【００３７】
図２ａ−２ｃには、本発明の各種の実施例に従ってファイルフォーマット２４において利用されるリレーションシップタイプも含まれている。モジュールパーツに関連付けられるリレーションシップタイプは、関連性や依存性を特定するだけでなく、依存性の根拠を特定する。リレーションシップタイプには次のもの：コードファイルを特定できるコードファイルのリレーションシップ、ユーザデータのリレーションシップ、スタイルシートのリレーションシップ、コメントのリレーションシップ、埋め込みオブジェクトのリレーションシップ、描画オブジェクトのリレーションシップ、画像のリレーションシップ、音声のリレーションシップ、メールエンベロープのリレーションシップ、文書のプロパティのリレーションシップ、サムネイルのリレーションシップ、スキーマのリレーションシップ、チャートシートのリレーションシップ、ダイアログシートのリレーションシップ、ワークシートのリレーションシップ、ピボットテーブルのリレーションシップ、共有ストリングのリレーションシップ、リストのリレーションシップ、ピボットキャッシュのリレーションシップ、スタイルのリレーションシップ、マークアップマップのリレーションシップ、ピボットキャッシュメタデータのリレーションシップが含まれる。
【００３８】
図２ｃには、モジュールパーツを編集するためのコレクションのタイプをリストアップするリスト２５９も示されている。コレクションタイプには、チャートシートパーツ２１２を含むチャートシートのコレクション、ダイアログシートパーツ２１４を含むダイアログシートのコレクション、ワークシートパーツ２１７を含むワークシートのコレクション、ピボットテーブルパーツ２３４を含むピボットのコレクション、ピボットキャッシュ定義パーツ２３５とピボットキャッシュレコードパーツ２３７を含むピボットキャッシュのコレクションがある。コレクションタイプにはまた、スタイルシートパーツ２４０とスタイルパーツ２２０を含むスタイルのコレクション、マークアップマップパーツ２１８を含むマークアップマップのコレクション、リストパーツ２２８を含むリストのコレクション、埋め込みオブジェクトパーツ２３０とユーザデータパーツ２４５を含む埋め込みのコレクションがある。
【００３９】
図３、図４は、本発明の実施例にしたがって、モジュールコンテンツのフレームワークにおいてワークブックを表現するために実行されるルーチンを示している。ここで紹介するルーチンの説明を読むにあたり、本発明の各種の実施形態の論理オペレーションは、（１）コンピュータにより実行される行為またはコンピュータシステム上で実行されるプログラムのシーケンスとして、および／または（２）コンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして実装されていると理解すべきである。どのような実装とするかは、本発明を実行するコンピューティングシステムの性能上の要求事項に応じた選択の問題である。したがって、図３、図４に示され、本明細書で説明される本発明の実施形態を構成する論理オペレーションは、オペレーション、構造的デバイス、行為（ＡＣＴ）、モジュール等、さまざまな呼称で呼ばれる。当業者は、これらのオペレーション、構造的デバイス、行為、モジュールは、ソフトウェア、ファームウェア、特定用途デジタルロジックおよびこれらの組み合わせの中で、特許請求範囲に記載される本発明の精神と範囲から逸脱することなく実行できると理解するであろう。
【００４０】
次に、図２ａ−２ｃおよび図３を見ると、ルーチン３００は、オペレーション３０４から始まり、ここで、スプレッドシートアプリケーションプログラム１０がワークブックパーツ２０２を書く。ルーチン３００は、オペレーション３０４からオペレーション３０５に続き、ここで、スプレッドシートアプリケーションプログラム１０は、ワークブックについてワークシートのリレーションシップを照会する。次に、オペレーション３０７において、スプレッドシートアプリケーションは、ワークブックパーツ２０２において参照されたワークシートパーツ２１７を書き、各ワークシートパーツ２１７とワークブックパーツ２０２との間のリレーションシップを確立する。
【００４１】
次に、オペレーション３０８において、スプレッドシートアプリケーション１０は、画像パーツ２４８等のリレーションシップタイプに関連付けられているモジュールパーツと、スキーマパーツ２５４を書く。他のモジュールパーツとの間で共有されるモジュールパーツは１回だけ書かれる。ルーチン３００は次に、オペレーション３１０に続く。
【００４２】
オペレーション３１０において、スプレッドシートアプリケーション１０は、新たに書かれたモジュールパーツと過去に書かれたパーツのリレーションシップを確立するする。ルーチン３００は次に、「戻る」オペレーション３１２で終了する。
【００４３】
次に、図４を見ながら、モジュールパーツを書くためのルーチン４００について説明する。ルーチン４００はオペレーション４０２から始まり、ここでスプレッドシートアプリケーション１０はスプレッドシートアプリケーション内のデータを検査する。ルーチン４００は続いて検出オペレーション４０４に進み、ここで、そのデータがモジュールパーツにすでに書かれているか否かを判断する。そのデータがモジュールパーツに書かれていなければ、ルーチン４００は検出オペレーション４０４からオペレーション４０５に進み、４０５において、スプレッドシートアプリケーションが検査されたデータを含むモジュールパーツを書く。ルーチン４００は次に検出オペレーション４０７に進み、これについて後述する。
【００４４】
検出オペレーション４０４において、検査されたデータがモジュールパーツにすでに書かれていれば、ルーチン４００は検出オペレーション４０４から検出オペレーション４０７に進む。検出オペレーション４０７において、すべてのデータが検査されたか否かが判断される。すべてのデータが検査されていれば、ルーチン４００は、「戻る」オペレーション４１２において他のオペレーションの制御に戻る。さらに検査すべきデータが残っていれば、ルーチン４００は検出オペレーション４０７からオペレーション４１０に進み、ここで、スプレッドシートアプリケーション１０は他のデータに注目する。そして、ルーチン４００は上記のオペレーション４０２に戻る。
【００４５】
上記に基づき、本発明の各種の実施形態には、モジュールコンテンツのフレームワークにおいてワークブックを表現するためのファイルフォーマット、方法、コンピュータプログラム製品が含まれる。上記の仕様、例、データは、本発明による構成物の製造と使用を十分に説明したものである。本発明の実施形態は、本発明の精神と範囲から逸脱することなく数多く作成できるため、本発明は添付の特許請求範囲に示される。
【図面の簡単な説明】
【００４６】
【図１】本発明の各種の実施例において利用され、これによって提供されるコンピューティング装置を説明するコンピューティングシステムアーキテクチャを示す図である。
【図２ａ】本発明の各種の実施例によるワークブックを表現するためのファイルフォーマットにおいて利用される各種のモジュールパーツに関するワークブックリレーションシップのヒエラルキを説明するためのブロック図である。
【図２ｂ】本発明の各種の実施例によるワークブックを表現するためのファイルフォーマットにおいて利用される各種のモジュールパーツに関するワークブックリレーションシップのヒエラルキを説明するためのブロック図である。
【図２ｃ】本発明の各種の実施例によるワークブックを表現するためのファイルフォーマットにおいて利用される各種のモジュールパーツに関するワークブックリレーションシップのヒエラルキを説明するためのブロック図である。
【図３】本発明の実施例によるモジュールコンテンツのフレームワークにおいてワークブックを表現する際に実行されるルーチンの例を示すフローチャートである。
【図４】本発明の実施例によるモジュールコンテンツのフレームワークにおいてワークブックを表現する際に実行されるルーチンの例を示すフローチャートである。
【符号の説明】
【００４７】
５  中央処理ユニット
７  システムメモリ
９  ランダムアクセスメモリ
１０  スプレッドシートアプリケーションプログラム
１１  リードオンリメモリ
１４  大容量記憶デバイス
１６  オペレーティングシステム
１８  ネットワーク
２０  ネットワークインタフェースユニット
２２  入出力コントローラ
２６  他のアプリケーションプログラム
２７  ワークブック１
【図１】
2006178946.tif 000003
【図２ａ】
2006178946.tif 000004
【図２ｂ】
2006178946.tif 000005
【図２ｃ】
2006178946.tif 000006
【図３】
2006178946.tif 000007
【図４】
2006178946.tif 000008