説明

マークアップ言語で指定されるスプレッドシートスタイルを処理するためのシステムおよび方法

【課題】 マークアップ言語中に記述されたスプレッドシート文書中のセルに対する書式付け情報の処理を容易にする方法を提供する。
【解決手段】 複数のスタイルオブジェクトを含むスプレッドシート文書に対して、セル書式付け情報を、マスター書式付け情報を保存するマスタースタイルオブジェクトから取得できる。また、指定されたスタイル情報を、指定されたスタイルを保存するスタイル指定オブジェクトから取得できる。さらに、マスター書式付け情報を無効にできるセル固有の書式付け情報を、セル固有の書式付け情報を含むセル−固有のスタイルオブジェクトから取得できる。指定されたスタイルと、マスタースタイルオブジェクト中の書式付け情報を無効にするセル−固有の書式付け情報と、このセル‐固有の書式付け情報により無効にされていないマスター書式付け情報とを有することのできる、セルに対する統合化セル書式付け情報を、セルフォーマットオブジェクト中に保存できる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、印刷分野に関し、特に、マークアップ言語を用いて記述されたスプレッドシート用のスタイル−データを処理するためのシステムおよび方法に関する。
【背景技術】
【0002】
文書処理ソフトウェアにより、ユーザは、多様な種類の文書を簡便に視認、編集、処理、保存および印刷することができる。印刷対象となる文書コンテンツは、多様な方式で記述することが可能であり、例えば、オフィスオープンエクステンシブルマークアップ言語(「OOXML」)や、XMLに基づき主としてスプレッドシートと共に用いられるスプレッドシートマークアップ言語(「SML」)等のマークアップ言語が用いられている。マークアップ言語により、文書にテキスト注釈を付すことが可能となる。記述的マークアップ言語を用いて、文書の部分間における構造的関係を指定することは可能であるが、記述的マークアップ言語からは、文書をどのようにレンダリングするかまたはエンドユーザに提示するかについての命令は何も得られない場合が多い。一方、手続きマークアップ言語および提示マークアップ言語中には、文書コンテンツをどのようにレンダリングすべきかについて詳述する命令が含まれる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
記述的マークアップ言語を用いて記述された文書をレンダリングする場合、文書の部分間における構造的関係に起因して、印刷対象としての最終的なレンダリング可能コンテンツを決定するプロセスが複雑になる可能性がある。スプレッドシートなどの文書の場合、スプレッドシートセルの値は、非常に多数の他のセルに依存し得るため、その複雑性が多種多様に増大し得る。スプレッドシートの要素(例えば、セル、表およびそれらの関連付けられた属性)は、プログラムでオブジェクトとして表されることが多い。そのため、マークアップ言語(例えば、OOXML)で指定されているスプレッドシートを印刷するために処理を行う場合、非常に多数のスプレッドシートオブジェクトがメモリ内にロードされる可能性があり、レンダリング後のオブジェクトの外観を決定するために、一以上のオブジェクト(これらは、文書の部分間における構造的関係を反映している)に対するポインタが何度もトラバースし得る。例えば、SMLや他の多種のOOXML記述の場合、ページネーション決定が行われてレンダリング開始可能となる前に、通常は全データがメモリにロードされる。
【0004】
メモリ内に複数のオブジェクトをロードすることと、処理中にポインタのトラバースを繰り返し行うこととは、さらなるメモリリソースの使用と、他の処理における非効率性との一因になり得る。例えば、さらなるメモリが用いられると、プリンタのコストが上昇する可能性があり、処理時にポインタのトラバースが繰り返し行われると、スループット低下の一因になり得る。スプレッドシートとの関係において、スプレッドシートセルや表等の、スプレッドシートオブジェクトと関連付けられたスタイル−データを処理することは、メモリリソースの使用と、処理における非効率性との大きな一因となり得る。従って、メモリリソースをより最適な様態で用いつつ、スプレッドシートオブジェクトと関連付けられたスタイルデータの効率的な処理および印刷を可能にするシステムおよび方法が求められている。
【課題を解決するための手段】
【0005】
開示の実施形態に基づいて、システムおよび方法が提供される。いくつかの実施形態において、マークアップ言語中に記述されるスプレッドシート文書であって、複数のスタイルオブジェクトを含むスプレッドシート文書中の少なくとも一つのセルに対する書式付け情報を保存するための、プロセッサで実施される方法は、前記少なくとも一つのセルに対するマスター書式付け情報を保存するマスタースタイルオブジェクトから、前記少なくとも一つのセルに対するセル書式付け情報を取得する工程と、前記少なくとも一つのセルに対する指定されたスタイルを保存し、かつ前記セルマスタースタイルオブジェクトを参照するスタイル指定オブジェクトから、前記少なくとも一つのセルに対する指定されたスタイル情報を取得する工程と、前記少なくとも一つのセルに対するセル固有の書式付け情報を含み、かつ前記マスタースタイルオブジェクトを参照するセル−固有のスタイルオブジェクトから、前記少なくとも一つのセルに対するセル固有の書式付け情報であって、マスター書式付け情報を無効にする当該セル固有の書式付け情報を取得する工程と、セルフォーマットオブジェクト中の前記少なくとも一つのセルに対する統合化セル書式付け情報であって、前記少なくとも一つのセルに対する指定されたスタイルと、前記マスタースタイルオブジェクト中の書式付け情報を無効にするセル−固有の書式付け情報と、当該セル−固有の書式付け情報によって無効にされていないマスター書式付け情報とを有する、前記セルフォーマットオブジェクト中の前記統合化セル書式付け情報を保存する工程とを備える。
【0006】
開示の実施形態はまた、コンピュータ可読型媒体またはコンピュータ可読型メモリを用いてプロセッサによって生成、保存、アクセスまたは改良された方法にも関する。
【0007】
以下、上記の実施形態および他の実施形態について、以下の図面を参照してさらに説明する。
【図面の簡単な説明】
【0008】
【図1】マークアップ言語を用いて記述されたスプレッドシートスタイルデータを処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。
【図2】例示的プロセスフローであり、マークアップ言語で指定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。
【図3】スプレッドシートセルに対する従来の例示的OOXMLセルフォーマット仕様を示す。
【図4】図3に示された例示的OOXMLスプレッドシートセルフォーマット仕様に対する従来の例示的オブジェクトマッピングを示す。
【図5】OOXMLを用いて記述されたスプレッドシートスタイルデータを処理する方法から帰結されるOOXMLスプレッドシートセルに対する例示的オブジェクトのマッピングを、開示の実施形態と一貫した様態で示す。
【発明を実施するための形態】
【0009】
開示の実施形態の多様な特徴を反映した実施形態によれば、マークアップ言語を用いて記述されたスプレッドシート用のスタイル−データを処理するためのシステムおよび方法が提供される。いくつかの実施形態において、印刷可能なスプレッドシートデータは、マークアップ言語記述の形態をとり得る。例えば、スプレッドシートマークアップ言語データの処理に関する例は、OOXMLまたはSMLの観点から説明する。しかし、記載のシステムおよび方法は、当業者にとって自明の適切な改良により、他のマークアップ言語を用いて記述されたスプレッドシートにも適用可能である。
【0010】
図1は、マークアップ言語を用いて記述されたスプレッドシートスタイルデータを処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。一般的に、開示の実施形態に基づいたコンピュータソフトウェアアプリケーションは、コンピュータ、プリンタおよび他の周辺装置のネットワーク上において、展開され得る。これらのコンピュータ、プリンタおよび他の周辺装置は、通信リンクを通じて接続され、従来の通信プロトコルおよび/またはデータポートインターフェースを用いた情報のやり取りが可能になっている。
【0011】
図1に示すように、例示的システム100は、コンピュータデバイス110を含む。コンピュータデバイス110は、接続部120を用いてネットワーク140を介してプリンタ170と通信する。コンピュータデバイス110は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境において使用可能な他の任意のコンピュータデバイスであってもよい。コンピュータデバイス110は、例えば、OOXML等のマークアップ言語を用いて記述された、スプレッドシートまたはワークシートなどの文書の印刷を、プリンタ170を用いて行うことを可能にするソフトウェア(図示せず)を実行し得る。
【0012】
例示的プリンタ170は、電子データから物理的文書を生成する種々のデバイスを含む。このようなデバイスを非限定的に挙げると、レーザープリンタ、インクジェットプリンタ、LEDプリンタがある。例示的プリンタ170は、プロッター、ファクシミリ装置、多機能デバイス、デジタルコピー機などの形態をとり得る。いくつかの実施形態において、プリンタ170は、コンピュータデバイス110から受信した印刷文書を直接印刷することもできる。いくつかの実施形態において、このような配置構成により、コンピュータデバイス110によるさらなる処理が有っても(あるいは無くても)文書を直接印刷することが可能となり得る。
【0013】
いくつかの実施形態において、文書は、OOXML等マークアップ言語を用いて記述されてもよく、テキスト、グラフィック、画像のうち一以上を含み得る。いくつかの実施形態において、これらの文書は、OOXMLまたはSMLを用いて記述されたスプレッドシートの形態をとり得る。いくつかの実施形態において、プリンタ170は、OOXMLまたはSMLによる記述文書を印刷対象として受信し得る。文書印刷処理は分散させることができる点にも留意されたい。そのため、プリンタ170によって文書を物理的に印刷する前に、コンピュータデバイス110および/またはプリンタ170により、マークアップ言語の構文解析、事前処理、植字、ラスタライゼーション、ハーフトニング、カラーマッチング、および/または他の操作プロセスのような文書印刷処理の一部を行うことができる。
【0014】
コンピュータデバイス110はまた、リムーバブルメディアドライブ(図示せず)も含み得る。リムーバブルメディアドライブの例を挙げると、例えば、3.5インチフロッピードライブ、CD−ROMドライブ、DVDROMドライブ、CD±RWまたはDVD±RWドライブ、USBフラッシュドライブ、および/または開示の実施形態に従った他の任意のリムーバブルメディアドライブがある。いくつかの実施形態において、スプレッドシート用スタイルデータを処理するためのソフトウェアアプリケーションの一部をリムーバブルメディアに常駐させ、コンピュータデバイス110によって上記リムーバブルメディアドライブを用いて読み出しおよび実行を行ってもよい。
【0015】
接続部120は、ネットワーク140を介してコンピュータデバイス110およびプリンタ170を接続しており、従来の通信プロトコルおよび/またはデータポートインターフェースを用いて有線接続または無線接続として実現され得る。一般的に、接続部120は、デバイス間のデータ送信を可能にする任意の通信チャンネルでよい。一実施形態において、例えば、適切な接続を介したデータ送信のためのパラレルポート、シリアルポート、イーサネット、USB、SCSI、FIREWIRE、および/または同軸ケーブルポートのような従来のデータポートが設けられ得る。これらの通信リンクは、無線リンクまたは有線リンクであってもよいし、あるいは、上記の多様なデバイス間の通信を可能にする開示の実施形態に従った任意の組み合わせであってもよい。
【0016】
ネットワーク140は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)またはインターネットを含み得る。プリンタ170は、接続部120を通じてネットワーク140に接続され得る。いくつかの実施形態において、プリンタ170は、コンピュータデバイス110に直接接続してもよい。いくつかの実施形態によれば、システム100は他の周辺装置(図示せず)も含み得る。開示の実施形態に従った、スプレッドシート用スタイルデータを処理するためのコンピュータソフトウェアアプリケーションは、コンピュータ110および/またはプリンタ170上で展開され得る。例えば、コンピュータデバイス110は、スプレッドシート用スタイルデータを処理するためのソフトウェアのうちいくつかの部分を実行してもよく、その場合、他の部分は、開示の実施形態に従ってプリンタ170によって実行され得る。
【0017】
いくつかの実施形態において、プリンタ170は、CPU176、ファームウェア171、メモリ172、入力/出力ポート175、印刷エンジン177、および二次記憶装置173を接続するバス174を含み得る。プリンタ170はまた、開示の実施形態に従って、マークアップ言語において指定された印刷可能なスプレッドシートデータをレンダリングするためのアプリケーションの部分を実行することが可能な他の特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)178も含み得る。いくつかの実施形態において、プリンタ170は、I/Oポート175および接続部120を用いて、コンピュータデバイス110内の二次記憶装置または他のメモリにアクセスすることもできる。いくつかの実施形態において、プリンタ170は、プリンタオペレーティングシステム、マークアップ言語構文解析ソフトウェア、ラスタライゼーションルーチン、および他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。
【0018】
いくつかの実施形態において、CPU176は、汎用プロセッサ、専用プロセッサ、または組み込みプロセッサであり得る。CPU176は、制御情報および命令を含むデータを、メモリ172および/またはファームウェア171とやり取りすることができる。メモリ172は、任意の種類のダイナミックランダムアクセスメモリ(DRAM)であり得る。このようなダイナミックランダムアクセスメモリを非限定的に挙げると、SDRAMまたはRDRAMがある。ファームウェア171は、命令およびデータを保持し得る。このような命令およびデータを非限定的に挙げると、マークアップ言語構文解析、言語処理、ラスタライゼーションおよびハーフトニングのためのブートアップシーケンスおよび事前規定されたルーチンならびに他のコードがある。いくつかの実施形態において、ファームウェア171内のコードおよびデータは、CPU176によって機能させられる前に、メモリ172にコピーされ得る。
【0019】
ファームウェア171内のルーチンは、OOXMLまたはSMLなどのマークアップ言語を用いて記述されたスプレッドシートなどの文書を処理および印刷するためのコードを含み得る。このような文書は、コンピュータデバイス110から受信され得る。いくつかの実施形態において、このような処理は、スプレッドシート用スタイル−データの処理を含み得る。ファームウェア171はまた、圧縮ルーチンおよびメモリ管理ルーチンを含み得る。いくつかの実施形態において、ファームウェア171内のデータおよび命令は、更新可能であってもよい。
【0020】
いくつかの実施形態において、CPU176は、命令およびデータに対して機能し、ASIC/FPGA178および印刷エンジン177に対して制御およびデータを提供して印刷文書を生成し得る。FPGA/ASIC178もまた、変換アルゴリズム、圧縮アルゴリズムおよびラスター化アルゴリズムのうち一以上を実行し得る。
【0021】
一実施形態において、コンピュータデバイス110は、マークアップ言語を用いて指定されたスプレッドシートなどの文書中の印刷可能データをプリンタ170に送信し得る。その後、プリンタ170は、上記マークアップ言語による記述の構文を解析し、スタイル−データを処理するためのルーチンを呼び出し得る。例えば、スタイルデータオブジェクトは、記述された実装方法(implementation)に合致する様態で特定および処理され得る。
【0022】
いくつかの実施形態において、このマークアップ言語記述の文書から最終的な印刷可能データへの変換プロセスは、中間的な印刷可能データの生成を含み得る。いくつかの実施形態においては、この中間的な印刷可能データは、ディスプレイリストを含む場合があり、このディスプレイリストにより、最終的な印刷可能データの生成が支援され得る。いくつかの実施形態において、ディスプレイリストは、メモリ172または二次記憶装置173内に保存され得る。例示的二次記憶装置173は、内部ハードディスクまたは外部ハードディスク、メモリスティック、またはプリンタ170において使用可能な他の任意のメモリ記憶デバイスであってもよい。いくつかの実施形態において、ディスプレイリストは、プリンタ170および/またはコンピュータデバイス110のうち一以上に常駐し得る。
【0023】
図2は、例示的プロセスフロー200を示し、マークアップ言語で規定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。このプロセスは、工程210において、印刷ジョブの開始と共に開始し得る。この印刷ジョブは、いくつかの場合において、OOXMLまたはSMLなどのマークアップ言語で指定されたスプレッドシートであり得る。
【0024】
工程220において、文書215に対し、言語およびオブジェクト処理を行うこともできる。例えば、文書中のデータをOOXML構文解析ツールによって構文解析して、個々のオブジェクトを特定することができる。これらのオブジェクトは、テキストオブジェクト、画像オブジェクトおよびグラフィックオブジェクトに加え、スプレッドシート文書内のスタイルオブジェクトを含み得る。いくつかの実施形態において、OOXML構文解析ツールなどのマークアップ言語構文解析ツールおよび他の関連付けられたルーチンにより、言語処理およびオブジェクト事前処理が行われ得る。スプレッドシートの場合、構文解析ツールを用いて、例えば、セル、表、形状、およびスタイルなどの、当該スプレッドシート特有の多様なオブジェクトを特定および処理することも可能である。上記構文解析ツールは、スプレッドシートセルおよび表と関連付けられたスプレッドシートスタイルデータオブジェクトを処理することもでき、これにより、本明細書中に記載される実施形態に従った様式での効率的な印刷が可能となる。
【0025】
これらの操作のいくつかにより、ディスプレイリスト225中のエントリを記述するプリミティブが配置され得る。例示的ディスプレイリスト225は、実際に印刷する前のデータ処理における中間工程であってもよく、後続形態に変換する前にさらに構文解析され得る。ディスプレイリスト225は、色、不透明度、境界情報および深さなどの情報を含み得る。
【0026】
ディスプレイリスト表現から物理的媒体上の印刷に適した形態への変換プロセスを、データのラスター化またはラスタライゼーションと呼ぶ場合がある。いくつかの実施形態において、ラスタライゼーションは、工程230においてラスター画像プロセッサによって行われ得る。例えば、基本的ラスタライゼーションは、ポリゴンによって記述されることが多い三次元領域をとり、この三次元領域を二次元表面上にレンダリングすることにより、達成され得る。ポリゴンは、三角形の集合として表現することができる。三角形は、三次元空間内の3つの頂点により、表現することができる。1つの頂点は、1点、エッジの端点、またはポリゴンにおける2つのエッジが出会う角部を規定する。そのため、基本的ラスタライゼーションにより、頂点の軌跡(stream)を対応する二次元点に変換し、この変換された二次元三角形を塗りつぶすことができる。ラスタライゼーションの後、上記ラスター化データは、例示的フレームバッファ250などのフレームバッファ内に保存され得る。このフレームバッファは、メモリ172内に物理的に配置され得る。
【0027】
工程230において、ラスター画像処理(RIP)モジュールは、ディスプレイリスト225中のオブジェクトを処理し、ラスター化された同等物をフレームバッファ250内に生成し得る。いくつかの実施形態において、ラスター画像処理は、プリンタ170によって行われ得る。例えば、ラスター画像処理は、プリンタ170により、CPU176、ASIC/FPGA178、メモリ172および/または二次記憶装置173のうちの一以上を用いて行われ得る。ラスター画像処理は、プリンタ170により、ソフトウェア、ファームウェアおよび/または専用ハードウェア(例えば、ASIC/FPGA178)の何らかの組み合わせを用いて行われ得る。フレームバッファ350は、印刷エンジン177による印刷媒体上への印刷に適した形態で、印刷オブジェクトの表現を保持し得る。
【0028】
いくつかの実施形態において、フレームバッファ250中のデータは、工程260において後処理に供され得る。例えば、ハーフトニング、トラッピングなどの多様な操作を、フレームバッファ250中のデータに対して実行することができる。これらの操作の結果、フレームバッファ中のデータは改変され、その結果、後処理されたフレームバッファ265が得られる。その後、後処理されたフレームバッファ265は、工程270において任意のさらなる処理に供され得る。例えば、印刷エンジン177は、後処理されたフレームバッファ265中における、ラスター化されかつ後処理されたデータを処理し、紙などの印刷媒体上のページに対する印刷可能な画像を形成し得る。
【0029】
図3は、スプレッドシートセルに対する従来の例示的OOXMLセルフォーマット仕様300を示す。図3に示すように、例示的スプレッドシート310は、セル312を含む。セル312は、そのロケーション「D2」(スプレッドシートの列D/行2)と、ストリング「Q1」で与えられるスプレッドシートセルデータ318とによって特定される。1つのセルは、行および列の交点におけるそのロケーションにより、指定することができる。セルは、データを保持することができ、例えば、数値またはテキスト書式設定、アライメント、フォント、色、塗りつぶしおよび枠などの、複数の特性を有し得る。図3に示すように、スプレッドシートセル312は、指定されたスタイル「Accent1」(「強調1」)及び太線のボックス枠313を有し、この指定されたスタイルは、ユーザにより適用されたものである。
【0030】
セル312そのものは、セル参照322が「D2」であることを示すワークシートXML記述320内の「c」集合によって表現され得る。例示的セル312はまた、値s=「7」のスタイル識別子325(属性「s」)と、データタイプ(属性t)とを示し得る。これは、セル312が、t=「s」によって表される「ストリング」タイプのデータを保持していることを示している。セル値属性<v>321がストリングに対する数であるのかまたはインデックスであるのかを決定するために、セルのデータタイプが調査され得る。セルデータタイプがストリングを示す場合、セルのデータタイプはインデックスであり、数値ではない。図3に示すように、セル値インデックス321は、ゼロベースのインデックス共有型ストリング表330のインデックスであり、セル312のコンテンツのロケーションを示す。セル値インデックス321の値は「0」であり、これは、セル値インデックス321が共有型ストリング表330における最初のエントリであることを示し、セル値インデックス321は、「Q1」と示されているセルデータ338にマップされている。
【0031】
スタイル(Styles)は、スプレッドシート中の対象物に適用することができる。セル(Cells)、表(Tables)、セル範囲(Cell ranges)、ピボット表(PivotTables)、チャート(Charts)、及び形状(Shapes)は、スタイル、テーマ(Themes)、及び直接書式付け(Direct Formatting)を用いてフォーマットできる。一つのスタイルは、書式付け要素の指定された集合として見ることができる。例えば、セルスタイルは、数のフォーマット、セル位置合わせ、フォント情報、セル枠仕様、色、及び背景/前景塗りつぶしを指定できる。表スタイルは、見出し行等の表の領域に対して書式付け要素を指定できる。一つのスタイルは、色、フォント、及び形状効果を直接に指定することができ、又はこれらの要素は、テーマの定義を参照することにより間接的に参照できる。スタイルにより、より矛盾なく文書を様式化できる。テーマは、一組の色、フォント情報、及び形状に関する効果を定義する。スタイル又は書式付け要素が、一つのテーマを参照することにより、その色、フォント、又は効果を定義する場合は、新しいテーマを選ぶことは、その書式付け要素のための全ての色、フォント、及び効果の切り替えを生じる可能性がある。直接書式付けが適用されたときは、個々の書式付け要素(例えば、太字のフォント)が、指定されたスタイルを選択することにより書式付け要素を集合的に選択する代わりに個別に選択するように用いられてきた。
【0032】
図3に示すように、スプレッドシート310中のセル312は、ワークシートXML320において参照されている指定されたスタイル325を用いている。指定されたスタイル325の属性値であるs=「7」がワークシートXML320において参照されているが、これは、指定されたスタイル325からcellXfs中の8番目の<xf>定義345への破線によって示すように、cellXfsまたはセル固有フォーマット340の8番目(またはゼロベースで7番目)の<xf>定義345が、セル312についての直接的セル固有書式設定情報を保持していることを示す。セルスタイル記録(<xf>)は、セルの直接的書式設定について、全てのセル固有書式設定(例えば、数フォーマット、フォント情報、枠および塗りつぶし)を統括する。cellXfsまたはセル固有フォーマット340は、セル312についての直接的書式設定要素を指定する。例えば、xfld347に対する属性値は1であり、このことは、セルスタイルXfs(CellStyleXfs)350中の第二の<xf>定義367が、書式付け情報をxfld347から<xf>定義367へ太い実線で示したように保持することを意味する。更に、セルXfs340は、属性値borderId343が2で、この枠が属性値applyBorder349に対して「1」で示されるように適用され得ることも示す。
【0033】
セルスタイルXfs又はセルマスターフォーマット(Cell Master Format)360は、指定されたセルスタイルに対するマスターセルスタイルを表現できる。このセルスタイルXfs360中の第二の定義を表すマスターセルスタイル<xf>記録367は、指定されたセルスタイルに対する全てのマスター書式付け(例えば数のフォーマット、フォント情報、及び塗りつぶし)を共に結びつける。太い実線で図3に示されるように、セルスタイルXfs360の内側の<xf>367も、指定されたセルスタイルに関する情報を保持しているセルスタイル(CellStyles)350の定義からゼロベースのインデックスxfld357により参照される。マスターセルスタイル記録367も、属性値borderId363が0であり、「0」により示されるように、属性値applyBorder369に対してどの枠も適用できないことを示している。マスターセルスタイル記録367は、属性値borderId363を0として示し、どんな枠も適用されていないが、これらの設定は、セルXfs又はセル固有フォーマット340中のセル固有の書式付け情報により無効にされ、このことは太い枠(borderId343=「2」)が適用される(applyBorder349=「1」)ことを示す、ことに留意されたい。
【0034】
セルスタイル350は、ワークブック中で用いられる指定されたセルスタイルの集合である。図3に示すように、ユーザは、スプレッドシート310中で指定されたスタイル「Accent 1」(「強調1」)をセル312に適用されるように選択した。この指定されたスタイル「Accent 1」は、セルスタイル350中に現れ、セルスタイルXfs360中の第二の定義に対応するゼロベースのインデックスxfld357を参照する。
【0035】
図4は、図3に示された例示的OOXMLスプレッドシートセルフォーマット仕様に対する従来の例示的オブジェクトマッピング400を示す。図4に示すように、セルスタイルオブジェクト450は、ユーザにより適用された指定されたスタイル(「Accent 1」)を識別し、セルスタイルオブジェクト450中のxfld457に対する値を保持する。セルスタイルオブジェクト450は、指定されたセルスタイルに関する情報を保持し、マスターセル書式付け情報を保持しているオブジェクトを参照することができる。したがって、セルスタイルオブジェクト450に対応するセルスタイル定義350において、この指定されたスタイルは「Accent1」として示され、xfld357は、破線で示すようにセルスタイルXfs中の第二の定義に対応する値1を有する。属性xfld457の値は、xfld457からxfld467まで太い実線により示すように、セルマスターフォーマット情報を保持するセルスタイルXfsオブジェクト460中の(ゼロベースの)記録数を示す。
【0036】
同様に、セルスタイルXfsオブジェクト460は、セルマスターフォーマット属性に対する値を含むマスターセルスタイル情報を保持する。特に、セルスタイルXfsオブジェクト460の第二の定義は、(図3の)セル312のマスターフォーマットに対する値を保持する。したがって、セルスタイルXfsオブジェクト460に対応するセルスタイルXfsの定義360において、(値[1]を有するとして示される)第二の<xf>記録367は、破線で示されるように値「0」を有する(borderId463に対応する)borderId363を示す。(applyBorder469に対応する)属性applyBorder369は、何の枠も適用されないことを示す値「0」を有する。属性borderId463により保持される値は、セルに対して指定された枠の特性を示す枠オブジェクト表430中の記録に対するインデックスである。
【0037】
さらに、セルXfsオブジェクト440は、セル固有フォーマット属性に対する値を含むセル固有の書式付け情報を保持する。図4に示すように、セルXfsオブジェクト440は、xfld447からxfld467まで太い実線で示すようにセルマスターフォーマットを保持するセルスタイルXfsオブジェクト460中の(ゼロベースの)記録数を示すxfld447に対する値を保持する。また、セルXfsオブジェクト440は、点線で示すセルスタイルXfs460中の属性463及び469の値を無効にする属性borderId443及びapplyBorder449に対する値も保持する。属性borderId443により保持される値「2」は、指定された枠の特性を示す枠オブジェクト表430中の記録に対するインデックスである。したがって、セルXfsの定義340により示されるように、borderId=2に対応する枠がセル312に適用される。
【0038】
スプレッドシートオブジェクトを処理するための従来の方法において、記述されたオブジェクトに対する種々の参照が印刷中多数回移動させられ、このことが非能率を生じる。さらに、印刷される各セルに対して、様々な表中の属性値は、このセルをレンダリングするために使用される最終的印刷属性を決定するために調べられ、かつ分析される。検査は、スプレッドシート中の各セルが処理されるときに連続的に生じるので、多数のオブジェクト及び表が、印刷中メモリに保存され、メモリ使用の増大を招くこととなる。例えば、SML及び種々の他のOOXML記述に対して、ページ付け決定がなされレンダリングが開始できる前に、全てのデータが、一般的にはメモリ中にロードされる。従来の処理の間、一つのセルがレンダリングのために処理されるとき、セルマスターフォーマットセルスタイルXfsオブジェクト460中で指定されたセル属性値が調べられる。次に、セルXfsオブジェクト440中の属性値も、これらの値が、セルスタイルXfsオブジェクト460によって以前に設定された何れかの値を無効にするかどうか判断するために調べられる。上の処理は、最終的レンダリングに先立って下流のルーチンによりセルが処理されるとき毎に各セルに対して繰り返され、これによりメモリと処理の非効率の一因となっている。
【0039】
図5は、開示された実施形態に適合する方法でOOXMLを用いて記述されたスプレッドシート用スタイルデータを処理する方法から結果として得られるOOXMLスプレッドシートセルに対する例示的なオブジェクトのマッピング500を示す。例示的なオブジェクトのマッピング500は、OOXMLスプレッドシート文書215に対する言語及びオブジェクト処理工程220の間に生成することができる。例えば、例示的なオブジェクトのマッピング500は、OOXML又はSMLを用いて記述されたスプレッドシート中のスタイルオブジェクトを処理するときに構文解析ツールにより生成できる。幾つかの実施の形態においては、例示的なオブジェクトのマッピング500は、ラスターイメージ処理工程330の間に、スタイルを使用するスプレッドシートオブジェクトをレンダリングするために使用できる。
【0040】
幾つかの実施の形態においては、OOXMLデータが、スプレッドシート等の文書315のために読み込まれるとき、マスターセル情報セルスタイルXfsオブジェクト460中のセルフォーマット情報が、指定されたセルスタイルセルスタイルオブジェクト450中の指定されたセルスタイル情報及びセル固有のスタイルセルXfsオブジェクト440中のセル固有の情報と、統合化セルフォーマットオブジェクト510が、使用されるセルスタイルのための属性値及び他の書式付け情報を直接示すように、統合化され得る。さらに、幾つかの実施の形態においては、スタイル属性が適用されるべきか(否か)を示すブール代数の(applyBorder、applyFill等の)「applyAttribute」属性を取り除くことができ、最終的に適用される属性値は、セルフォーマット(cellFormats)オブジェクト510中の適切なレコードに直接指定され得る。
【0041】
図5に示すように、スプレッドシート310中のセル312は、ストリング「Q1」により与えられるスプレッドシートセルデータ318を用いて、セル参照322中のその位置「D2」により識別される。セル312は、ワークシートXMLの定義320中で参照される属性値s=「7」を有する指定されたスタイル325を用いる。さらに、スプレッドシートセル312は、ユーザにより適用された太線のボックス枠313を有する。セル値インデックス321は、ゼロベースのインデックス共用型ストリング表330へのインデックスであり、セル312の内容の位置を示す。セル値インデックス321は、それが、値「Q1」有するセルデータ338へマッピングする共用型ストリング表330中の最初の項目であることを示す値「0」を有する。
【0042】
図5に示すように、ワークシートXML320中で参照された指定されたスタイル325の属性値s=「7」は、セルフォーマット540の8番目の(又はゼロベースの7番目の)<xf>の定義545が、指定されたスタイル325からセルフォーマット540中の8番目の<xf>定義まで破線により示されるセル312のための統合化書式付け情報を保持していることを示す。幾つかの実施の形態においては、統合化フォーマット記録545は、セルの書式付けに関する全ての書式付け情報を組み合わせて保存する。幾つかの実施の形態においては、セルフォーマット540は、セルスタイル又はセルスタイルXfsへの参照を含まない。幾つかの実施の形態においては、OOXML構文解析ツールが、スプレッドシートのOOXML仕様中の情報を構文解析して、セル312に関するスタイル情報をセルスタイルオブジェクト450、セルスタイルXfsオブジェクト460、及びセルXfsオブジェクト440から得ることができる。上のオブジェクトからの情報は、(i)指定されたスタイル情報を保存する、(ii)重複する又は余分な情報を除去する、(iii)指定されたセル固有の書式付け情報を用いてセルに対するマスタースタイル情報を無効にすることによりセルスタイル属性に対する最終的な値を得る、及び(iv)(「属性(Attribute)」が枠、塗りつぶし、フォント等の一つであってもよい)applyAttributeフラグを除去する、ことにより統合化できる。セル312のフォーマットに関する新しい「統合化」記録は、そこで、上の工程(i)ないし(iv)を適用した後に得られた情報を保存できるセルフォーマットオブジェクト510中に生成できる。幾つかの実施の形態においては、セルに対する記録が、指定されたスタイル属性325の値に基づいてセルフォーマットオブジェクト510中の適切な位置に生成できる。例えば、指定されたスタイル325の属性値がs=「7」であれば、統合化セルフォーマットの記録を8番目の記録として生成できる。
【0043】
幾つかの実施の形態においては、XMLセルフォーマット記述340は、アプリケーションに対してセル312のための統合化書式付け要素を指定できる。例えば、borderId543に対する属性値が「2」に指定され、Style name546に対する属性値が「Accent 1」に指定される。図5に示すように、セルフォーマットオブジェクト510は、セルフォーマットXML定義540に対応している。したがって、セルフォーマットオブジェクト510において、formatID515が、指定されたスタイル325に対応するゼロベースの記録数を識別する。セル312に対して、ワークシートXML320中s=「7」であり、したがってformatIDは値7を有する。同様に、strName516は、指定されたスタイルを「Accent1」と識別し、borderId513に対して「2」の値を保持する。この属性borderId513により保持された値「2」は、太い実線で示されるように、枠オブジェクト表430中の記録に対するインデックスである。この枠オブジェクト表430中の指定された記録は、指定された枠の特性を示す。したがって、セルフォーマット定義340により示されるように、borderId=2に対応する枠は、破線で示されるように、セル312に適用される。幾つかの実施の形態においては、統合化セルフォーマットオブジェクト510が、より少ない追従するポインタとより少ないメモリ資源とを用いて、より速いセルページ付け及びレンダリングを可能にする。
【0044】
本明細書および開示の実施形態の実施を鑑みれば、当業者にとって他の実施方法が明らかである。本明細書および例はひとえに例示的なものとしてみなされるべきであり、その真なる範囲および精神は以下の特許請求の範囲によって示されることが企図される。

【特許請求の範囲】
【請求項1】
マークアップ言語中に記述されるスプレッドシート文書であって、複数のスタイルオブジェクトを含むスプレッドシート文書中の少なくとも一つのセルに対する書式付け情報を保存するための、プロセッサで実施される方法であって、
前記少なくとも一つのセルに対するマスター書式付け情報を保存するマスタースタイルオブジェクトから、前記少なくとも一つのセルに対するセル書式付け情報を取得する工程と、
前記少なくとも一つのセルに対する指定されたスタイルを保存し、かつ前記セルマスタースタイルオブジェクトを参照するスタイル指定オブジェクトから、前記少なくとも一つのセルに対する指定されたスタイル情報を取得する工程と、
前記少なくとも一つのセルに対するセル固有の書式付け情報を含み、かつ前記マスタースタイルオブジェクトを参照するセル−固有のスタイルオブジェクトから、前記少なくとも一つのセルに対するセル固有の書式付け情報であって、マスター書式付け情報を無効にする当該セル固有の書式付け情報を取得する工程と、
セルフォーマットオブジェクト中の前記少なくとも一つのセルに対する統合化セル書式付け情報であって、前記少なくとも一つのセルに対する指定されたスタイルと、前記マスタースタイルオブジェクト中の書式付け情報を無効にするセル−固有の書式付け情報と、当該セル−固有の書式付け情報によって無効にされていないマスター書式付け情報とを有する、前記セルフォーマットオブジェクト中の前記統合化セル書式付け情報を保存する工程と
を備えたことを特徴とする方法。
【請求項2】
請求項1に記載のプロセッサで実施される方法であって、前記スプレッドシート文書は、OOXMLで記述されていることを特徴とする方法。
【請求項3】
請求項1に記載のプロセッサで実施される方法であって、前記スプレッドシート文書は、SMLで記述されていることを特徴とする方法。
【請求項4】
請求項1に記載のプロセッサで実施される方法であって、前記方法は、構文解析ツールにより行われることを特徴とする方法。
【請求項5】
請求項1に記載のプロセッサで実施される方法であって、前記セルフォーマットオブジェクトは、前記セルのレンダリングに用いられることを特徴とする方法。
【請求項6】
請求項1に記載のプロセッサで実施される方法であって、
前記少なくとも一つのセルに対する統合化セル書式付け情報を保存した後に、前記プロセッサに接続されたメモリから、前記マスタースタイルオブジェクト、スタイル−指定オブジェクト、及び前記少なくとも一つのセルに対する前記セル−固有のスタイルオブジェクトを削除する工程を備えたことを特徴とする方法。
【請求項7】
請求項1に記載のプロセッサで実施される方法であって、前記スタイル情報には、枠情報、フォント情報、又は塗りつぶし情報のうちの少なくとも一つが含まれることを特徴とする方法。
【請求項8】
請求項1に記載のプロセッサで実施される方法であって、前記方法は、
コンピュータ、
プリンタ、又は
コンピュータに接続されたプリンタ
により行われることを特徴とする方法。
【請求項9】
プロセッサにより実行されるときに、マークアップ言語中に記述されるスプレッドシート文書であって、複数のスタイルオブジェクトを含むスプレッドシート文書中の少なくとも一つのセルに対する書式付け情報を保存するための方法を実行する命令を保存する、コンピュータ可読型媒体であって、前記方法が、
前記少なくとも一つのセルに対するマスター書式付け情報を保存するマスタースタイルオブジェクトから、前記少なくとも一つのセルに対するセル書式付け情報を取得する工程と、
前記少なくとも一つのセルに対する指定されたスタイルを保存し、かつ前記セルマスタースタイルオブジェクトを参照するスタイル指定オブジェクトから、前記少なくとも一つのセルに対する指定されたスタイル情報を取得する工程と、
前記少なくとも一つのセルに対するセル固有の書式付け情報を含み、かつ前記マスタースタイルオブジェクトを参照するセル−固有のスタイルオブジェクトから、前記少なくとも一つのセルに対するセル固有の書式付け情報であって、マスター書式付け情報を無効にする当該セル固有の書式付け情報を取得する工程と、
セルフォーマットオブジェクト中の前記少なくとも一つのセルに対する統合化セル書式付け情報であって、前記少なくとも一つのセルに対する指定されたスタイルと、前記マスタースタイルオブジェクト中の書式付け情報を無効にするセル−固有の書式付け情報と、当該セル−固有の書式付け情報によって無効にされていないマスター書式付け情報とを有する、前記セルフォーマットオブジェクト中の前記統合化セル書式付け情報を保存する工程と
を備えていることを特徴とする媒体。
【請求項10】
請求項9に記載のコンピュータ可読型媒体であって、前記スプレッドシート文書は、OOXMLで記述されていることを特徴とする媒体。
【請求項11】
請求項9に記載のコンピュータ可読型媒体であって、前記スプレッドシート文書は、SMLで記述されていることを特徴とする媒体。
【請求項12】
請求項9に記載のコンピュータ可読型媒体であって、前記方法は、構文解析ツールにより行われることを特徴とする媒体。
【請求項13】
請求項9に記載のコンピュータ可読型媒体であって、前記セルフォーマットオブジェクトは、前記セルのレンダリングに用いられることを特徴とする媒体。
【請求項14】
請求項9に記載のコンピュータ可読型媒体であって、
前記方法が、前記少なくとも一つのセルに対する統合化セル書式付け情報を保存した後に、前記プロセッサに接続されたメモリから、前記マスタースタイルオブジェクト、スタイル−指定オブジェクト、及び前記少なくとも一つのセルに対する前記セル−固有のスタイルオブジェクトを削除する工程を備えていることを特徴とする媒体。
【請求項15】
請求項9に記載のコンピュータ可読型媒体であって、前記スタイル情報には、枠情報、フォント情報、又は塗りつぶし情報のうちの少なくとも一つが含まれることを特徴とする媒体。
【請求項16】
請求項9に記載のコンピュータ可読型媒体であって、前記方法は、
コンピュータ、
プリンタ、又は
コンピュータに接続されたプリンタ
により行われることを特徴とする媒体。
【請求項17】
プロセッサにより実行されるときに、マークアップ言語中に記述されるスプレッドシート文書であって、複数のスタイルオブジェクトを含むスプレッドシート文書中の少なくとも一つのセルに対する書式付け情報を保存するための方法を実行する命令を保存する、コンピュータ可読型メモリであって、前記方法が、
前記少なくとも一つのセルに対するマスター書式付け情報を保存するマスタースタイルオブジェクトから、前記少なくとも一つのセルに対するセル書式付け情報を取得する工程と、
前記少なくとも一つのセルに対する指定されたスタイルを保存し、かつ前記セルマスタースタイルオブジェクトを参照するスタイル指定オブジェクトから、前記少なくとも一つのセルに対する指定されたスタイル情報を取得する工程と、
前記少なくとも一つのセルに対するセル固有の書式付け情報を含み、かつ前記マスタースタイルオブジェクトを参照するセル−固有のスタイルオブジェクトから、前記少なくとも一つのセルに対するセル固有の書式付け情報であって、マスター書式付け情報を無効にする当該セル固有の書式付け情報を取得する工程と、
セルフォーマットオブジェクト中の前記少なくとも一つのセルに対する統合化セル書式付け情報であって、前記少なくとも一つのセルに対する指定されたスタイルと、前記マスタースタイルオブジェクト中の書式付け情報を無効にするセル−固有の書式付け情報と、当該セル−固有の書式付け情報によって無効にされていないマスター書式付け情報とを有する、前記セルフォーマットオブジェクト中の前記統合化セル書式付け情報を保存する工程と
を備えていることを特徴とするメモリ。
【請求項18】
請求項17に記載のコンピュータ可読型メモリであって、前記スプレッドシート文書は、OOXMLで記述されていることを特徴とするメモリ。
【請求項19】
請求項17に記載のコンピュータ可読型メモリであって、前記スプレッドシート文書は、SMLで記述されていることを特徴とするメモリ。
【請求項20】
請求項17に記載のコンピュータ可読型メモリであって、前記方法は、構文解析ツールにより行われることを特徴とするメモリ。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−210236(P2011−210236A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−24703(P2011−24703)
【出願日】平成23年2月8日(2011.2.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(507031918)コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド (157)
【Fターム(参考)】