【文献】
エクスメディア,超図解 mini 魅せるExcel 2007 グラフ,日本,株式会社エクスメディア,2007年 9月 2日,初版,P.38−40,単行本2008-01138-001
【文献】
武井一巳,Gmail&Googleドキュメント 知りたいことがズバッとわかる本,日本,株式会社翔泳社,2011年10月 3日,初版,P.150−151,P.172−173,単行本2012-00286-001
(58)【調査した分野】(Int.Cl.,DB名)
前記ガジェットが前記スプレッドシート内の他のオブジェクトとは異なって表示されることができるように前記ガジェットを前記スプレッドシート内の名前付きアイテムとして公開するステップを更に含む、請求項1に記載の方法。
前記選択されたセル範囲との相互作用を判定するステップは、前記選択されたセル範囲内のセルが削除された場合、前記選択されたセル範囲内のセルが追加された場合、前記選択されたセル範囲内のセルが編集された場合、前記選択されたセル範囲内のセルがホバリングされた場合、及び前記選択されたセル範囲内のセルが選択された場合、のうちの少なくとも1つを判定するステップを含む、請求項1に記載の方法。
前記APIは、前記ガジェット上で行われたアクションに応答して前記スプレッドシートの1又は複数のセルの表示を変更する機能を更に備える、請求項1に記載の方法。
前記APIを使用して前記ガジェットから呼び出しを受け取るステップは、前記呼び出しが古い場合を判定するステップ、前記呼び出しが古い場合に前記呼び出しが実行されないようにするステップ、及び前記ガジェットに前記呼び出しが古い場合を知らせるステップを含む、請求項1に記載の方法。
前記ガジェットが前記スプレッドシートのアプリケーションにサポートされていない場合を判定するステップと、サポートされていない場合に、前記ガジェットに関連したウェブサイトにアクセスするためのリンクを表示するステップとを更に含む、請求項1に記載の方法。
前記ガジェットがレポート内に発行可能なように前記ガジェットを前記スプレッドシート内の名前付きアイテムとして公開するステップを更に含む、請求項11に記載のコンピューター可読記憶媒体。
前記APIは、前記ガジェット上で行われたアクションに応答して前記スプレッドシートの1又は複数のセルの表示を変更する機能を更に備える、請求項11に記載のコンピューター可読記憶媒体。
前記スプレッドシートの前記セル範囲との前記相互作用に応答して前記ガジェットの表示を自動的に更新するステップを更に含む、請求項11に記載のコンピューター可読記憶媒体。
前記APIを使用して前記ガジェットから呼び出しを受け取るステップは、前記呼び出しが古い場合を判定するステップ、前記呼び出しが古い場合に前記呼び出しが実行されないようにするステップ、及び前記ガジェットに前記古い要求を知らせるステップを含む、請求項11に記載のコンピューター可読記憶媒体。
前記APIを使用して前記ガジェットから呼び出しを受け取るステップは、前記呼び出しが古い場合を判定するステップ、前記呼び出しが古い場合に前記呼び出しが実行されないようにするステップ、及び前記ガジェットに前記古い要求を知らせるステップを含む、請求項17に記載のシステム。
【発明を実施するための形態】
【0005】
[0010] ここで図面を参照して、様々な実施態様が説明される。図面では、類似の符号は類似の要素を表す。特に、
図1とそれに対応する議論は、実施態様が実現されることができる好適なコンピューティング環境の簡潔で概略的な説明を提供することを意図されている。
【0006】
[0011] 一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び特定のタスクを実行し又は特定の抽象データ型を実装する他の種類の構造を含む。他のコンピューターシステム構成が用いられることもでき、それには、携帯用デバイス、マルチプロセッサーシステム、マイクロプロセッサーベースの又はプログラム可能な消費者向け電子製品、ミニコンピューター、メインフレームコンピューター等が含まれる。通信ネットワークを通じて接続された遠隔の処理装置によってタスクが実行される分散コンピューティング環境が用いられることもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルと遠隔のメモリー記憶装置の両方に配置されることができる。
【0007】
[0012] ここで
図1を参照して、様々な実施態様において利用されるコンピューター100の例示的なコンピューターアーキテクチャーが説明される。
図1に示されたコンピューターアーキテクチャーは、モバイルコンピューティングデバイス(例えば、スマートフォン、ノートブック、タブレット…)又はデスクトップコンピューターとして構成されることができ、中央処理装置5(「CPU」)、ランダムアクセスメモリー9(「RAM」)及びリードオンリーメモリー(「ROM」)10を含むシステムメモリー7、並びにメモリーを中央処理装置(「CPU」)5に結合するシステムバス12を含む。
【0008】
[0013] スタートアップ時などにコンピューター内の要素間で情報を転送するのに役立つ基本ルーチンを収容している基本入出力システムは、ROM10に格納されている。コンピューター100は、更に、オペレーティングシステム16、スプレッドシートアプリケーション及び/又は表形式データを用いて動作する他のアプリケーションなどのアプリケーションプログラム24、Webブラウザー25、ファイル27(例えばスプレッドシート)、並びに、以下においてより詳細に説明されるガジェットマネージャー26を格納するための大容量記憶装置14を含む。Webブラウザー25は、Webページ、動画、文書などの電子コンテンツとの相互作用機能を要求し、受け取り、描画し、提供するように動作可能である。一実施態様によれば、Webブラウザーは、マイクロソフト社からのインターネットエクスプローラーWebブラウザーアプリケーションプログラムを含む。
【0009】
[0014] 大容量記憶装置14は、バス12に接続された大容量記憶装置コントローラー(不図示)を通じてCPU5に接続されている。大容量記憶装置14とそれに関連するコンピューター可読媒体は、コンピューター100に不揮発性記憶を提供する。本明細書に包含されているコンピューター可読媒体の記載はハードディスク又はCD−ROMドライブなどの大容量記憶装置を指しているが、コンピューター可読媒体は、コンピューター100によってアクセスされることができる任意の利用可能な媒体であり得る。
【0010】
[0015] 限定ではなく例として、コンピューター可読媒体は、コンピューター記憶媒体と通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、若しくは他のデータなどの情報の記憶のための任意の方法又は技術によって実現された、揮発性及び不揮発性、リムーバブル及び非リムーバブルの媒体を含む。コンピューター記憶媒体は、RAM、ROM、消去可能プログラマブルリードオンリーメモリー(「EPROM」)、電気的消去可能プログラマブルリードオンリーメモリー(「EEPROM」)、フラッシュメモリー若しくは他の固体メモリー技術、CD−ROM、デジタル多用途ディスク(「DVD」)、若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、所望の情報を格納するのに用いられることが可能であり、コンピューター100によってアクセスされることが可能である任意の他の媒体を含むが、これらに限定されない。
【0011】
[0016] 様々な実施態様によれば、コンピューター100は、インターネットなどのネットワーク18を通じた遠隔のコンピューターへの論理的接続を使用するネットワーク環境において動作することができる。コンピューター100は、バス12に接続されたネットワークインターフェースユニット20を通じてネットワーク18に接続することができる。ネットワーク接続は、無線及び/又は有線であり得る。ネットワークインターフェースユニット20は、他の種類のネットワーク及び遠隔のコンピューターシステムに接続するのに利用されることもできる。コンピューター100はまた、タッチ入力デバイス28を含む多数の他のデバイスからの入力を受け取って処理するための入出力コントローラー22も含むことができる。タッチ入力デバイスは、シングル/マルチタッチ入力が認識される(タッチ/非タッチ)ようにする任意の技術を利用することができる。例えば、当該技術は、熱、指圧、高速撮影カメラ、赤外光、光学撮影、同調電磁誘導、超音波受信器、マイクロホン変換器、レーザー距離計、影撮影等を含むことができるが、これらに限定されない。一実施態様によれば、タッチ入力デバイスは、近接タッチ(即ち、タッチ入力デバイスからある距離の範囲内であるが、タッチ入力デバイスに物理的には接触しない)を検出するように構成されることができる。タッチ入力デバイス28は、ディスプレイとして機能することもできる。入出力コントローラー22は、1又は複数のディスプレイ画面、プリンター、又は他の種類の出力デバイスへ出力を供給することもできる。
【0012】
[0017] カメラ及び/又は何らかの他の検知デバイスは、1又は複数のユーザーを記録し、コンピューティングデバイスのユーザーによって行われたモーション及び/又はジェスチャーをキャプチャーするように動作可能である。検知デバイスは、更に、話された言葉を例えばマイクロホンによってキャプチャーする、及び/又は、ユーザーからの他の入力を例えばキーボード及び/又はマウス(不図示)によってキャプチャーするように動作可能である。検知デバイスは、ユーザーの動きを検出する能力のある任意のモーション検出デバイスを含むことができる。例えば、カメラは、複数のカメラと複数のマイクロホンを備えたマイクロソフトKinect(登録商標)モーションキャプチャーデバイスを含むことができる。
【0013】
[0018] 本発明の実施態様は、図に例示されたコンポーネント/プロセスの各々又は多くが単一の集積回路に統合されているシステムオンチップ(SOC)を介して、実施されることができる。そのようなSOCデバイスは、1又は複数の処理装置、画像装置、通信装置、システム仮想化装置、及び様々なアプリケーション機能を含むことができ、それらの全ては、単一の集積回路としてのチップ基板に統合される(即ち「書き込まれる」)。SOCを介して動作する場合、本明細書において説明される機能の全て/いくつかが、単一の集積回路(チップ)上のコンピューティングデバイス/システム100の他のコンポーネントと統合されることができる。
【0014】
[0019] 上で簡潔に言及されたように、多数のプログラムモジュールとデータファイルがコンピューター100の大容量記憶装置14及びRAM9に格納されることができ、それらには、ネットワーク接続されたパーソナルコンピューターの動作を制御するのに好適なオペレーティングシステム16、例えばワシントン州レドモンドのマイクロソフト社からのWindows7(登録商標)オペレーティングシステムが含まれる。一実施態様によれば、オペレーティングシステムは、タッチ入力デバイス28のサポートを含むように構成される。別の実施態様によれば、ガジェットマネージャー26が、タッチ入力デバイス28から受け取られるタッチ入力のいくつか/全てを処理するのに利用されることができる。
【0015】
[0020] 大容量記憶装置14とRAM9はまた、1又は複数のプログラムモジュールも格納することができる。特に、大容量記憶装置14とRAM9は、スプレッドシートアプリケーションなどの1又は複数のアプリケーションプログラム24を格納することができる。一実施態様によれば、スプレッドシートアプリケーションは、マイクロソフトExcelである。アプリケーションの動作と連携して、ガジェットマネージャー26が、1又は複数のガジェットをスプレッドシートと統合するために使用される。ガジェットマネージャー26は、アプリケーション/プロセスとして、及び/又はリソース(例えば、サービス、データ…)を様々なテナントに提供するクラウドベースのマルチテナントサービス(例えば、マイクロソフトOffice365、マイクロソフトSharePoint Online)の一部分として、構成されることができる。
【0016】
[0021] 概して、ガジェットマネージャー26は、ガジェットとスプレッドシートとを含んだ入力及び呼び出しを処理するように構成されている。ガジェットは、別のサーバー(例えば19)によってホストされスプレッドシートアプリケーションに関連した標準ウェブ技術(例えば、XML、HTML、Flash、JavaScript(登録商標)、…)を使用する、ファーストパーティー及び/又はサードパーティーのウェブ拡張であり得る。あるガジェットはシートのコンテンツと統合されることができ、その一方、他のガジェットはシートから独立している。ガジェットは、スプレッドシートと一緒にオンライン及び/又はオフラインで用いられることができ、リンクを通じてアクセスされることができる。ガジェットは、シート内の(1又は複数の)セル範囲に連結されている。連結範囲のセルのうちの1又は複数がアクセス(例えば、選択、ホバリング、編集、削除、追加)されると、ガジェットは通知を受ける。ガジェットは、この情報を使用して、ガジェットにより描画される表示を更新し、及び/又は何らかの他のアクションを実施することができる。スプレッドシートアプリケーションが、ガジェットを見ている任意の無権限ユーザーに対してスプレッドシート自体のバックエンドロジックと計算の詳細を保護しながら、ガジェットは、スプレッドシートから取得されたデータを描画することができる。ガジェットは、スプレッドシートと通信を行うのにアプリケーションプログラミングインターフェース(API)29を使用する。API29は、ガジェットをスプレッドシートに連結する、スプレッドシートから/へコンテンツを取得/入力する、スプレッドシートの表示を変更する、スプレッドシートのユーザーインターフェースの表示を要求する、等のための機能を備えている。一実施態様によれば、ガジェットは、スプレッドシート内の名前付きアイテムのオブジェクトであり、その結果、ガジェットは、(例えば、レポート、ダッシュボード、…の形で電子的に表示/発行するために選択された)他のオブジェクトとは異なって見える/表示されることができる。ガジェットが最新のデータに対して作用しないように、ガジェットからの古い要求が、検出されること及び処理されないようにすることを試みられる。ガジェットマネージャー26の動作に関する更なる詳細は、以下において提供される。
【0017】
[0022]
図2は、ガジェットをスプレッドシート及びスプレッドシート計算エンジンと統合する例示的なシステムを示す。図示されるように、システム200は、アプリケーションプログラム24、サービス210、ガジェットマネージャー26、データストア240、ガジェットサイト260、及び入力デバイス/ディスプレイ202を含む。一実施態様によれば、ディスプレイ202はタッチスクリーンデバイスである。
【0018】
[0023] 一実施態様によれば、アプリケーションプログラム24は、タッチ感応式入力デバイス202から入力を受け取るように構成されているスプレッドシートアプリケーションである。例えば、ガジェットマネージャー26は、ユーザーの指(即ち、手256の指)によるメニューオプションの選択、ガジェットの要素の選択(例えば、対話型棒グラフ内の棒の選択)、スプレッドシート(例えばスプレッドシート250)の1又は複数のセルの選択、スプレッドシート内の列/行の選択(例えば選択252)等に応答して、アプリケーション24及び/又はサービス210へ情報を提供することができる。
【0019】
[0024] 図示されるように、サービス210は、1又は複数の生産性アプリケーション(例えば、マイクロソフトExcel、マイクロソフトSharePoint)に関連するサービスを提供するように構成されているクラウドベース及び/又は企業ベースのサービスである。サービス210は、クライアントベースのアプリケーションとして構成されることもできる。システム200は生産性サービス及び/又はコンテンツ管理サービスを示しているが、他のサービス/アプリケーションは、表形式データと共にスライサーを使用するように構成されることができる。アプリケーションプログラム24の機能は、サービス210の中に含まれることができる。
【0020】
[0025] 図示されるように、サービス210は、リソース215及びサービスを任意の数のテナント(例えばテナント1〜N)に提供するマルチテナントサービスである。一実施態様によれば、マルチテナントサービス210は、当該サービスへ加入したテナントにリソース/サービス215を提供し、個別に且つ他のテナントデータから保護された各テナントのデータを保守するクラウドベースのサービスである。例えば、サービス210は、生産性アプリケーション(例えば、スプレッドシート、コンテンツ管理、文書処理、プレゼンテーション、メッセージング…)等に対応するサービスを提供するように構成されることができる。
【0021】
[0026] 図示されるようなタッチ入力システム200は、タッチ入力が受け取られた(例えば、指がタッチスクリーンに触れる、又は、ほぼ触れる)場合を検出するタッチスクリーン入力デバイス202を備えている。ユーザーのタッチ入力を検出する任意の種類のタッチスクリーンが利用されることができる。例えば、タッチスクリーンは、タッチ入力を検出する単層又は多層の容量性材料を含むことができる。容量性材料に加えて、又はその代わりに、他のセンサーが用いられることができる。例えば、赤外線(IR)センサーが用いられることができる。一実施態様によれば、タッチスクリーンは、タッチ可能表面に接触している又はその上にある物体を検出するように構成されている。「〜の上に」という用語がこの説明で用いられているが、タッチパネルシステムの向きは無関係であるということが理解されるべきである。「〜の上に」という用語は、そのような全ての向きに当てはまることを意図されている。タッチスクリーンは、タッチ入力がどこで受け取られたかの場所(例えば、開始点、中間点、及び終了点)を決定するように構成されることができる。タッチ可能表面と物体との実際の接触が、例えばタッチパネルに結合された振動センサー又はマイクロホンを含む、任意の適切な手段によって検出されることができる。接触を検出するセンサーの例の非網羅的なリストは、圧力ベースのメカニズム、マイクロマシン加工された加速度計、圧電素子、容量センサー、抵抗センサー、誘導センサー、レーザー振動計、及びLED振動計を含む。
【0022】
[0027] ガジェットマネージャー26は、タッチスクリーン202から受け取られたタッチ入力を処理するように構成されている。例えば、ユーザーは、ガジェット(例えばガジェット254)と連結するためにスプレッドシート250内の1又は複数のセル(例えば選択252)を選択することができる。今の例では、ユーザーは、ガジェット254と連結すべきセル範囲を特定するために複数のセル252を選択した。
【0023】
[0028] ガジェットは、ウェブ上の他のコンテンツと同様に形成されることのできるウェブコンテンツを含む。概して、ガジェットは、情報を一目で見て分かる形で表示し、頻繁に使われるツールへの容易なアクセスを提供するように構成されている。例えば、ガジェット254は、スプレッドシート内にデータを配置するだけでなく、スプレッドシートから(例えばセル252から)データを取得することのできる対話型棒グラフを表示するように作成されることができる。例えば、ユーザーは、棒グラフの棒を選択し、その棒を新たな値へドラッグすることができる。図示された例では、ユーザーは、位置A4のセル値に対応する一番右の棒を選択したところである。ユーザーが棒を調節した後に、A4の値は、ガジェットによってスプレッドシートへ更新される(例えば、ガジェットによって決定された現在の値は5である)。ガジェットはスプレッドシートから取得されるコンテンツを示すことが可能であるだけでなく、ガジェットはスプレッドシートの表示を変化させることが可能である。現在の例では、ガジェット254が示された場合、ガジェットに関連付けられているセルが他のセルから区別される(当該関連付けられているセルの周囲の枠、セルの強調、セルの書式の変更等)。
【0024】
[0029] ガジェットは、ほとんど全ての所望される動作を実施するように構成されることができる。例えば、ガジェットは、株式相場を表示する、ニュースの見出しを更新する、スライドショーを表示する、スプレッドシートのデータと相互作用する(例えば、値の設定/値の取得)ように構成されることができる。
【0025】
[0030] ガジェットは、様々なプログラミング技術、例えば、XML、HTML,JavaScript(登録商標)、AdobeFlash等を用いて作成されることができる。ガジェットは、ネットワークサイト(例えばガジェットウェブサイト260)上、ローカルマシン上で実行することができ、及び/又は、スプレッドシートの中に収容されることができる。サイトは、サードパーティー及び/又はサービス210によってホストされることができる。ガジェットは、スプレッドシートと共にオンライン及び/又はオフラインで使用されることができ、またリンクを通じてアクセスされることができる。
【0026】
[0031] ガジェットは、スプレッドシート及びスプレッドシートの計算エンジン222と統合する。あるガジェットはシートのコンテンツと統合されることができ、その一方、他のガジェットはシートから独立している。論じられたように、ガジェットは、シート内の(1又は複数の)セル範囲に連結されることができる。
【0027】
[0032] 連結範囲のセルのうちの1又は複数が相互作用(例えば、選択、ホバリング、編集、削除、追加)されると、ガジェットは通知を受ける。ガジェットは、この情報を使用して、ガジェットにより描画される表示を更新し、及び/又は何らかの他のアクションを実施することができる。
【0028】
[0033] ガジェットは、スプレッドシートと通信を行うのにアプリケーションプログラミングインターフェース(API)230を使用する。API230は、ガジェットをスプレッドシートに連結する、スプレッドシートから/へコンテンツを取得/入力する、スプレッドシートの表示を変更する、スプレッドシートのユーザーインターフェースの表示を要求する、等のための機能を備えている。
【0029】
[0034] ガジェットは、スプレッドシートの他のオブジェクト(表、グラフ、範囲、…)と共に、スプレッドシートの1つのオブジェクトとして扱われる。一実施態様によれば、ガジェットは、スプレッドシート内の名前付きアイテムのオブジェクトであってもよく、その結果、ガジェットは、(例えば、レポート、ダッシュボード、…の形で発行するために選択された)他のオブジェクトとは異なって見える/表示されることができる(
図4及びそれに関する議論を参照)。
【0030】
[0035] ガジェットは、スプレッドシートと非同期で通信するように構成されている。よって、ガジェットからスプレッドシートへの呼び出しは古い(例えば、呼び出しにより参照されるデータは現在のデータではない)場合がある。古い呼び出しが受け取られると、ガジェットは通知を受け、当該呼び出しは処理されず、その結果、ガジェットは、ガジェットが認識していないデータに対して作用しない。
【0031】
[0036] データストア240は、1又は複数のガジェットと関連するスプレッドシートを格納することができる。ユーザーは、スプレッドシートアプリケーション及び/又は何らかの他のアプリケーションと関連したユーザーインターフェースからファイル/ワークブックを開くことができる。
【0032】
[0037] ガジェットは、ユーザーのアクセス許可に応じてデータを異なる方法で表示することができる。例えば、スプレッドシートはスプレッドシート内のデータへのアクセスを制限することができ、及び/又は、ガジェットは制限を指定することができる。例えば、ユーザーがアクセス権を有していないビューはガジェットの中に示されないが、ユーザーがアクセス権を有しているビューはガジェットの中に表示される。スプレッドシートアプリケーションが、ガジェットを見ている任意の無権限ユーザーに対してスプレッドシート自体のバックエンドロジックと計算の詳細を保護しながら、ガジェットは、スプレッドシートから取得されたデータを描画することができる。
【0033】
[0038]
図3は、ガジェットとスプレッドシートの例示的な表示を示す。
[0039] 図示されるように、表示310は、ガジェット254とガジェット318の2つのガジェットに関連するスプレッドシートを示す。ガジェット254は、
図2において説明されたガジェットであり、選択範囲252に連結されている。
【0034】
[0040] ガジェット318は、ユーザーが値を表示しスプレッドシートに値を入力することを可能にするガジェットである。例えば、ガジェット318は、スプレッドシート内に配置されることのできる値を入力するための入力ボックスを示す。現在の例では、ユーザーは、保存オプションを選択した後に、連結位置316に入力するための値1、2、3、及び4を入力したところである。現在の例では、ガジェットは、入力ボックスの現在の選択(例えば、ユーザーは入力ボックスに値2を入力して対応するセル位置が強調されるようにしている)に応答して、APIを使用してスプレッドシートのビューを調整する。ユーザーはまた、スプレッドシート内の値を変更して、ガジェットがその値を再表示し更新するようにさせることができる。換言すると、ガジェットに対してなされた変更はスプレッドシートに示されることができ、スプレッドシートに対してなされた変更はガジェットに示されることができる。
【0035】
[0041] 表示320は、スプレッドシートの表示の近傍の作業ウィンドウに表示されたガジェット324を備えたスプレッドシート322を示す。現在の例では、ガジェット324は、スプレッドシートの外側から取得されたコンテンツを検索し、スプレッドシート内で当該検索からの結果を提供し、表示し、及び格納するように構成されている。例えば、ガジェット324は、1又は複数の検索サービスを使用して、1又は複数の場所からソースを検索することができる。ユーザーは、戻ってきた結果の1又は複数をスプレッドシート322に格納することを決定することができる。ユーザーが結果格納ボタンを選択することによって結果を格納することを選択するのに応答して、スプレッドシートは、ユーザーインターフェース選択メソッドを表示し、及び/又は、ユーザーが当該結果を格納したいスプレッドシート内の場所を選択するのを可能にするタッチモードにユーザーを置くことができる。例えば、タッチ入力が場所を選択するのを可能にするAPI呼び出しに応答して、ユーザーは、コンテンツを格納するための場所として列1を選択する。この選択に応答して、スプレッドシートはガジェット324にその場所を返し、その結果、ガジェット324はその決定された場所に結果を配置することができる。
【0036】
[0042]
図4は、ガジェットを含む複数のオブジェクトソースにわたる名前付きオブジェクトビューレポートの生成を示す機能的なブロック図である。レポートの名前付きオブジェクトビューは、様々な電子オブジェクトソースから生成されることができる。図に示されるように、電子データオブジェクトソースは、ワークブック400、ガジェット401、及びデータソース403などのワークブックから取得される。しかしながら、電子オブジェクトソースは、オブジェクトに関連付けられることのできる任意のファイル/データソースであってもよい。例えば、共通のデータソースであるウェブページから作成される1又は複数のオブジェクトが、名前付きオブジェクトビューの中に表示されることができる。オブジェクトは、取得されてレポート内に表示された時に、オブジェクトソースの中に格納されてもよいし、されなくてもよい。例えば、オブジェクトは、電子ファイルの中にまだ格納されていないがコンピューティングデバイスのメモリー内に格納されている、新たに作成されたオブジェクトであってもよい。
【0037】
[0043] ワークブックは、異なるシート上の複数のオブジェクトを含むことができる。オブジェクトは、個々に選択又は操作されることが可能であるワークブック内の任意のアイテムであってよい。例えば、ワークブック400内のオブジェクトは、表402、ガジェット404、単一データセル406、及び棒グラフ408を含むことができる。他のオブジェクトがワークブック400内に含まれることもできる。図示されるように、ガジェット401は、円グラフ410、名前付き範囲412、画像414、及びピボットテーブル416を含んでいる。データソース403は、テキストボックス418及び折れ線グラフ420を含んでいる。オブジェクトのいくつかは、共通のデータソースからのデータを用いることができる。例えば、ワークブック400の棒グラフ408、ガジェット401の円グラフ410、及びデータソース403の折れ線グラフ420が、同じデータソースから作成されることができる。一実施態様では、オブジェクトは、複数のより小さいオブジェクトを包含するように定義されることができる。例えば、オブジェクトは、ワークブックの複数のページに対応することができる。別の実施態様では、オブジェクトは、オブジェクトのサイズが時間的に変化するような動的情報を含むことができる。例えば、名前付き範囲412は、ワークブック(例えばワークブック400及び/又は何らかの他のワークブック(不図示))の中に含まれているセル範囲に対応することができる。セル範囲は、スプレッドシートの処理に応答してサイズが増加又は減少することができる。名前付き範囲は、他のデータソースからの範囲に対応することができる。例えば、ウェブページは、時間的に変化する値の範囲を含有することができる。
【0038】
[0044] レポートは、イベント(例えば、ユーザーがワークブックを開く、ユーザーインターフェース内の名前付きオブジェクトビュー(NOV)オプションを選択する、検索を実施する等)に応答して自動的に生成されることができる。例えば、作者ユーザー又は管理ユーザーは、レポート430を生成するためにワークブック、ウェブページ、及び/又はデータソースのうちの1又は複数にサーバーからアクセスすることができる。あるいはまた、ワークブック、ウェブページ、及び/又はデータソースは、クライアントにおいてアクセスされてもよい。レポート内に発行するオブジェクトは、自動的に/手動で選択されることができる。例えば、ユーザーは、レポート内に発行するオブジェクトの全て/一部分を選択することができる。例えば、ユーザーは、ワークブック400のガジェット404、ガジェット401の名前付き範囲412、並びにデータソース403のテキストボックス418及び折れ線グラフ420を、レポート430に表示されるように手動で選択することができる。棒グラフ408と円グラフ410は、共通のデータ(例えば同じデータソース)を用いて作成されているので、自動的に選択されて発行されることができる。ユーザーは、発行者インターフェースからファイル/ワークブックを開くことができる。一実施態様では、オブジェクトに関連付けられた名前が発行者インターフェースにおいて提供される。ユーザーは、発行するオブジェクトをリストから選択することができる。一実施態様では、オブジェクトは、複数のワークブックから発行のために選択されることができる。
【0039】
[0045] ユーザーは、レポート430に含めるオブジェクトを、発行された各オブジェクトが容易に識別されるような名前によって選択することができる。一実施態様では、発行されたオブジェクトの名前は自動的に生成されることができる。例えば、表402は、「表」、「表1」、又は何らかの他の一意の名前として自動的に識別されることができる。ユーザーは、自動的に生成された名前を変更することができる。別の実施態様では、ユーザーは、発行されたオブジェクトのための名前を定義する。例えば、ガジェット404は、「給与支払簿ガジェット」と定義されることができる。同様に、名前付き範囲412は、「マイデータ」と定義されることができる。
【0040】
[0046] 選択されたオブジェクトは、レポート430内に発行される。例えば、ガジェット(「給与支払簿ガジェット」)406、名前付き範囲(「マイデータ」)412、テキストボックス418、及び折れ線グラフ420が、レポート430内に発行される。ワークブック400、ガジェット401、及びデータソース403の未選択部分は、レポート430内に発行されない。
【0041】
[0047] 一実施態様によれば、オブジェクトソースから取得すべきオブジェクトを決定するために、同じデータソースを利用するオブジェクトソースが検索される。例えば、多くのオブジェクトソースが、同じデータソースを用いてオブジェクト(例えば、表、グラフ)を作成することができる。現在の例では、棒グラフ408と円グラフ410が、同じデータを用いて作成される。ユーザーは、そのデータソースを用いて作成されたオブジェクトの全てを見ることを望むことができる。データソースは、自動的に/手動で選択されることができる。例えば、データソースは選択されたオブジェクトから決定されることができ、及び/又は、データソースは(例えばユーザーインターフェース要素を通じた)ユーザーからの入力から決定されることができる。ユーザーは、次いで、NOVモードを選択して、データソースから取得される様々なビューにわたって循環することによって、選択されたオブジェクトを見ることができる。
【0042】
[0048] 別の例は、ユーザーがウェブページを見てデータを変更し、そのデータについての彼らの解釈に特有な独特で面白いビューを作成することのできる場合を含む。ユーザーは、それらのビューを、特に今日のソーシャル的に接続されたインターネット環境において共有することを欲することができる。この例では、ユーザーは、それぞれがウェブページからのデータを用いて複数のビューを作成した友人を有している、と想定されたい。これら友人のそれぞれは、異なるビューを格納するのに用いられる1又は複数のオブジェクトソース(例えばファイル)を有することができる。ビューの1又は複数は、メモリーに格納されることもできる。ウェブページから作成されたビューを見せるためにレポートが生成されると、異なるユーザーによって作成されたビューを含む異なるオブジェクトソースが、類似のオブジェクトを得るために検索されることもできる。異なるオブジェクトソースからのオブジェクトが取得され、レポートに含められる。オブジェクトの様々なビューにわたって循環すると、ユーザーは、それぞれのオブジェクトソースに個々にアクセスする必要なく、異なるビューの全てを見ることができる。
【0043】
[0049] 一実施態様によれば、オブジェクトソースの許可が次に続く。ユーザーがアクセス権を有していないビューは示されないが、ユーザーがアクセス権を有しているビューは表示される。例えば、ユーザーが給与支払簿ガジェット406からディスプレイを見ている場合、彼らは、見る権限を与えられていない給与支払簿のビュー(例えば、他のユーザーの給与支払簿情報のビュー)へのアクセス権を有しないだろう。
【0044】
[0050] クライアントのユーザーは、レポート430の名前付きオブジェクトビューを提示される。一実施態様によれば、レポートは、オブジェクトがどこから取得されたかを区別しない。別の実施態様によれば、ユーザーは、オブジェクトがどこに配置されているかを決定するためにオブジェクトに照会することができる。例えば、ユーザーは、表示されたオブジェクトの上で右クリックして、そのオブジェクトの場所を見つける、及び/又は、そのオブジェクト及びそのオブジェクトの取得元である関連するオブジェクトソースを開くことができる。
【0045】
[0051] レポートレンダラーは、要求された場合、発行されたオブジェクトをマークアップ言語(ML)に変換する。例えば、オブジェクトソースの1つ(例えばワークブック400)がサーバーからアクセスされる。発行されたオブジェクトのMLバージョンは、ウェブブラウザーを介して表示のためにクライアントへ転送される。一実施態様では、発行されたオブジェクトは、ユーザーインターフェース450に描画される。例えば、ユーザーインターフェース450は、ウェブパーツであってよい。ウェブパーツは、単一用途を有した情報のモジュールユニットである。ウェブパーツは、多くのウェブページの基本的な構成要素を形成する。異なる発行されたオブジェクトが並んで閲覧されるように、2つ以上のウェブパーツがクライアントのダッシュボードに同時に表示されることができる。例えば、テキストボックス418は折れ線グラフ420に提示されたデータについて詳述するので、ユーザーは、異なるウェブパーツ上に表示するためにテキストボックス418と折れ線グラフ420を選択することができる。
【0046】
[0052] 発行されたオブジェクトの名前を含むツールバーも、ユーザーインターフェース450に描画されることができる。ツールバーは、特定の発行されたオブジェクトにアクセスするために用いられることができる。例えば、ツールバーは、発行されたオブジェクトの名前のリストを含むドロップダウンメニュー460である。具体的には、ドロップダウンメニュー460は、「給与支払簿ガジェット」、「マイデータ」、テキストボックス、及び折れ線グラフに対する選択可能なエントリーを含んでいる。他のオブジェクトもユーザーインターフェースの中に含まれることができる。レポートの名前付きオブジェクトビューが、第1の発行されたオブジェクト(即ち「給与支払簿ガジェット」)と共にユーザーインターフェース450に描画される。他の発行されたオブジェクトは、ユーザー入力に応答してユーザーインターフェース450に描画されることができる。例えば、ユーザーはドロップダウンメニュー460からエントリーを選択することができ、その結果、ユーザーインターフェース450は最新の情報に更新し、選択されたエントリーに対応する発行されたオブジェクトがユーザーインターフェース450に描画される。こうして、それぞれの発行されたオブジェクトが、クライアントにおいてユーザーに対して個々に表示されることができる。レポートの名前付きオブジェクトビューは、ユーザーの注意を発行されたオブジェクトに集中させる。オブジェクトソースの未発行のオブジェクトは、ユーザーに対して表示されない。
【0047】
[0053] ここで
図5及び6を参照して、スプレッドシートと共にガジェットを作成し使用するための例示的な処理が説明される。本明細書において提示されるルーチンに関する議論を解する時、様々な実施態様の論理的動作は、(1)コンピューティングシステム上で動く一連のコンピューター実装行為若しくはプログラムモジュールとして、及び/又は、(2)コンピューティングシステム内の相互接続された機械論理回路若しくは回路モジュールとして実装される、ということが理解されるべきである。実装は、本発明を実装するコンピューティングシステムの性能要件に依存する選択の問題である。したがって、本明細書において説明される実施態様を構成している例示された論理的動作は、動作、構造的デバイス、行為、又はモジュールと様々に呼ばれる。これらの動作、構造的デバイス、行為、又はモジュールは、ソフトウェア、ファームウェア、専用デジタル論理、及びそれらの任意の組み合わせによって実装されることができる。
【0048】
[0054]
図5は、ガジェットをスプレッドシートに連結するための処理を示す。
[0055] 開始動作の後、処理500は動作510へ流れ、ガジェットとスプレッドシートとの相互作用のためのAPIが提供される。APIは、様々な機能を提供することができる。例えば、APIは、ガジェットをスプレッドシートに連結する、スプレッドシートから/へコンテンツを取得/入力する、スプレッドシートの表示を変更する、スプレッドシートのユーザーインターフェースの表示を要求する、ガジェットに関連するデータをスプレッドシートのセルではなくスプレッドシートファイルの中に格納する、等のための機能を提供することができる。
【0049】
[0056] 動作520へ移って、ガジェットに連結するセル範囲が選択される。選択は、スプレッドシート内の1又は複数のセルのユーザー選択、及び/又はAPIを通じてなされる選択であってよい。例えば、ユーザーは、タッチ入力やスプレッドシートに関連付けられたユーザーインターフェースを用いて、スプレッドシートの1又は複数のセルを選択することができ、及び/又は、APIに関連する呼び出しの中で、オブジェクトの名前やセル範囲(例えば、A1:A9、B1:F3、表1、範囲の名前、アイテムの名前等)を提供することができる。一実施態様によれば、範囲の選択はタッチ入力を使用する。例えば、ユーザーは、スプレッドシートの1又は複数のセルを選択するためのジェスチャーを行うことができる。加えて、いくつかの実施態様によれば、ユーザーは、タッチ入力が受け取られ検出されるためには彼らの指(又は何らかの他の物体)をタッチ表面の表面近くに置きさえすればよい。セルは、スプレッドシートの1又は複数の行及び1又は複数の列の中にあるセルを含むことができる。選択は、ガジェットと連結する範囲を特定するのに用いられることができる。
【0050】
[0057] 動作530へ遷移して、ガジェットとスプレッドシートとの連結が確立される。連結は、ガジェットに対する一意の名前、ガジェットへのリンク、及びガジェットと関連付けられるべきスプレッドシートのセル範囲を指定することができる。
【0051】
[0058] 動作540へ移って、連結情報が格納される。一実施態様によれば、スプレッドシートファイルがコピーされた時にガジェットと連結情報が当該コピーと共に移動するように、連結情報はスプレッドシート内に格納される。別の実施態様によれば、連結は、ガジェットがスプレッドシートファイルの一部分とならないように、異なる場所に格納されることができる。
【0052】
[0059] 処理は次いで終了動作へ流れ、他のアクションの処理へ戻る。
[0060]
図6は、ガジェットがスプレッドシートと相互作用するための処理を示す。
[0061] 開始動作の後、処理600は動作610へ流れ、ガジェットに連結されている範囲が相互作用を受けた(例えば、スプレッドシート内の1又は複数のセルが選択される、ホバリングされる、編集される、削除される、追加される)場合についての判定がなされる。
【0053】
[0062] 動作620へ移って、ガジェットが相互作用を通知される。一実施態様によれば、通知は、連結範囲が変化したことをガジェットに提供する。通知は他の情報を含んでもよい。例えば、通知は、相互作用を受けた指定セル、及び/又は変更されたデータを含むことができる。
【0054】
[0063] 動作630へ遷移して、ガジェットから呼び出しが受け取られる。一実施態様によれば、呼び出しは、APIの呼び出しを通じて受け取られる。本明細書において論じられたように、呼び出しは、ガジェットをスプレッドシートに連結すること、スプレッドシートから/にコンテンツを取得/入力すること、スプレッドシートの表示を変更すること、スプレッドシートのユーザーインターフェースの表示を要求すること、等に関連することができる。
【0055】
[0064] 決定動作640へ移って、要求が古いか否かについての判定がなされる。例えば、ガジェットが呼び出しを行った時点とスプレッドシートが呼び出しを受け取った時点の間に、スプレッドシートに対して変更が行われたかもしれない。別の例では、(例えばネットワーク位置にある)スプレッドシートアプリケーションが、ワークブックを同時に編集する複数のユーザーを有するかもしれない。呼び出しが古い場合、処理は動作650へ移る。呼び出しが古くない場合、処理は動作660へ流れる。
【0056】
[0065] 動作650において、要求が古く、スプレッドシート内の最新のデータに関連していないかもしれない、ということをガジェットに知らせる通知が、ガジェットへ送られる。この通知に応答して、ガジェットは、スプレッドシートから最新のデータを取得して要求を再提出し、及び/又は何らかの他の動作を実施する(例えば動作をキャンセルする)ことができる。
【0057】
[0066] 動作660において、動作が実施される。この動作は、様々な異なるアクションに関連することができる。例えば、この動作は、スプレッドシートから/にコンテンツを取得/入力すること、スプレッドシートの表示を変更すること、スプレッドシートのユーザーインターフェースの表示を要求すること、発行するためのガジェットを特定すること、等であってよい。
【0058】
[0067] 動作670へ流れて、表示が更新されることができる。スプレッドシートの表示が更新されることができ、及び/又はガジェットの表示が更新されることができる。
[0068] 処理は次いで終了動作へ流れ、他のアクションの処理へ戻る。
【0059】
[0069] 上記の明細、例、及びデータは、本発明に係る構成の生産及び使用に関する完全な説明を提供している。本発明の趣旨及び範囲から逸脱することなく本発明に係る多くの実施態様が作られることが可能であるので、本発明は、この後に添付されたクレームに存している。