(57)【要約】【課題】スプレッドシートのオブジェクトを出力する際に、出力対象の表とその表が参照する情報とを１ページに集約して出力できるようにする。【解決手段】スプレッドシートのデータを処理する制御装置では、スプレッドシートのデータを解析して出力指定情報を含む設定情報を取得し、取得した設定情報に基づいて出力対象の表データを抽出し、出力対象の表データに含まれる各セルの数式などに基づいて、当該表データが他の表データを参照しているかを判断し、他の表データを参照している場合は、出力対象の表データと参照している他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更した出力データを生成し、生成した出力データを印刷装置や表示装置などの出力装置に出力する制御を行う。【選択図】図８
2018165000.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシートのデータを処理する装置で動作する出力制御プログラムであって、
前記装置に、
前記スプレッドシートのデータを解析して、出力するオブジェクトを指定する出力指定情報を含む設定情報を取得し、前記設定情報に基づいて、出力対象の表データを抽出する第１処理、
前記出力対象の表データが、出力対象でない他の表データを参照しているかを判断し、前記出力対象の表データが前記他の表データを参照している場合に、前記出力対象の表データと前記他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更する第２処理、
前記変更したレイアウトに従ってオブジェクトを配置した出力データを生成して、印刷装置又は表示装置に出力する第３処理、を実行させる、
ことを特徴とする出力制御プログラム。
【請求項２】
前記第２処理では、前記出力対象の表データの少なくとも１つのセルに、当該出力対象の表データ以外のセルを指定する数式が含まれているかを判断し、前記数式が含まれている場合は、当該数式で指定されたセルを含む前記他の表データを特定し、予め定めたルールに従って、前記他の表データから集約範囲を設定し、前記出力対象の表データと前記集約範囲とが同一ページに集約されるようにレイアウトを変更する、
ことを特徴とする請求項１に記載の出力制御プログラム。
【請求項３】
前記第２処理では、前記集約範囲を設定する際に、前記数式で指定されたセルに隣接するセルにおけるデータの有無に基づいて、前記他の表データの全体を特定する、
ことを特徴とする請求項２に記載の出力制御プログラム。
【請求項４】
前記第２処理では、前記他の表データのサイズが前記出力対象の表データのサイズと同等の場合、前記出力対象の表データと前記他の表データの前記集約範囲とを予め定めたフォントサイズ以上で同一ページに集約できる場合、又は、前記他の表データの全セルの数に対する、前記数式で指定されたセルの数の割合が５０％以上の場合は、前記他の表データの全体を前記集約範囲に設定する、
ことを特徴とする請求項２又は３に記載の出力制御プログラム。
【請求項５】
前記第２処理では、前記他の表データの全セルの数に対する、前記数式で指定されたセルの数の割合が５０％未満の場合は、前記数式で指定されたセルと、当該セルと同一行及び／又は同一列に配置されているデータ項目を示す項目セルと、を前記集約範囲に設定する、
ことを特徴とする請求項２又は３に記載の出力制御プログラム。
【請求項６】
前記第２処理では、前記数式で指定されたセルのみを前記集約範囲に設定する、
ことを特徴とする請求項２又は３に記載の出力制御プログラム。
【請求項７】
前記第２処理では、前記他の表データが更に別の表データを参照している場合は、前記別の表データも前記集約範囲に設定する、
ことを特徴とする請求項２乃至６のいずれか一に記載の出力制御プログラム。
【請求項８】
前記第２処理では、前記出力対象の表データと前記集約範囲とを隣接して集約する、
ことを特徴とする請求項２乃至７のいずれか一に記載の出力制御プログラム。
【請求項９】
前記第２処理では、前記出力対象の表データと前記集約範囲とがページを跨ぐ場合は、前記出力対象の表データの前で改ページして、前記出力対象の表データと前記集約範囲とを次のページに集約する、
ことを特徴とする請求項２乃至８のいずれか一に記載の出力制御プログラム。
【請求項１０】
スプレッドシートのデータを処理する装置と、印刷装置又は表示装置と、を含むシステムにおける出力制御方法であって、
前記装置は、
前記スプレッドシートのデータを解析して、出力するオブジェクトを指定する出力指定情報を含む設定情報を取得し、前記設定情報に基づいて、出力対象の表データを抽出する第１処理と、
前記出力対象の表データが、出力対象でない他の表データを参照しているかを判断し、前記出力対象の表データが前記他の表データを参照している場合に、前記出力対象の表データと前記他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更する第２処理と、
前記変更したレイアウトに従ってオブジェクトを配置した出力データを生成して、印刷装置又は表示装置に出力する第３処理と、を実行する、
ことを特徴とする出力制御方法。
【請求項１１】
前記第２処理では、前記出力対象の表データの少なくとも１つのセルに、当該出力対象の表データ以外のセルを指定する数式が含まれているかを判断し、前記数式が含まれている場合は、当該数式で指定されたセルを含む前記他の表データを特定し、予め定めたルールに従って、前記他の表データから集約範囲を設定し、前記出力対象の表データと前記集約範囲とが同一ページに集約されるようにレイアウトを変更する、
ことを特徴とする請求項１０に記載の出力制御方法。
【請求項１２】
前記第２処理では、前記集約範囲を設定する際に、前記数式で指定されたセルに隣接するセルにおけるデータの有無に基づいて、前記他の表データの全体を特定する、
ことを特徴とする請求項１１に記載の出力制御方法。
【請求項１３】
前記第２処理では、前記他の表データのサイズが前記出力対象の表データのサイズと同等の場合、前記出力対象の表データと前記他の表データの前記集約範囲とを予め定めたフォントサイズ以上で同一ページに集約できる場合、又は、前記他の表データの全セルの数に対する、前記数式で指定されたセルの数の割合が５０％以上の場合は、前記他の表データの全体を前記集約範囲に設定する、
ことを特徴とする請求項１１又は１２に記載の出力制御方法。
【請求項１４】
前記第２処理では、前記他の表データの全セルの数に対する、前記数式で指定されたセルの数の割合が５０％未満の場合は、前記数式で指定されたセルと、当該セルと同一行及び／又は同一列に配置されているデータ項目を示す項目セルと、を前記集約範囲に設定する、
ことを特徴とする請求項１１又は１２に記載の出力制御方法。
【請求項１５】
前記第２処理では、前記数式で指定されたセルのみを前記集約範囲に設定する、
ことを特徴とする請求項１１又は１２に記載の出力制御方法。
【請求項１６】
前記第２処理では、前記他の表データが更に別の表データを参照している場合は、前記別の表データも前記集約範囲に設定する、
ことを特徴とする請求項１１乃至１５のいずれか一に記載の出力制御方法。
【請求項１７】
前記第２処理では、前記出力対象の表データと前記集約範囲とを隣接して集約する、
ことを特徴とする請求項１１乃至１６のいずれか一に記載の出力制御方法。
【請求項１８】
前記第２処理では、前記出力対象の表データと前記集約範囲とがページを跨ぐ場合は、前記出力対象の表データの前で改ページして、前記出力対象の表データと前記集約範囲とを次のページに集約する、
ことを特徴とする請求項１１乃至１７のいずれか一に記載の出力制御方法。
【請求項１９】
前記印刷装置は、前記出力データに基づいて、前記出力対象の表データと前記集約範囲とを同一ページに集約した印刷物を作成する、
ことを特徴とする請求項１１乃至１８のいずれか一に記載の出力制御方法。
【請求項２０】
前記表示装置は、前記出力データに基づいて、前記出力対象の表データと前記集約範囲とを同一ページに集約した表示画像を表示する、
ことを特徴とする請求項１１乃至１８のいずれか一に記載の出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力制御プログラム及び出力制御方法に関し、特に、表データの出力を制御する出力制御プログラム及び出力制御方法に関する。
【背景技術】
【０００２】
文書作成や表計算などの処理が可能なオフィススイート・アプリケーションは、オフィスワーク、教育、家庭など、あらゆる場面で一般的に使用されている。オフィススイート・アプリケーションの内の代表的な表計算アプリケーションとして、Microsoft（登録商標、以下省略）のExcel（登録商標、以下省略）が挙げられる。また、Apache OpenOfficeなど、同様の機能を有するアプリケーションも複数流通しており、これらの表計算アプリケーションはスプレッドシート（Spreadsheet）と呼ばれる。
【０００３】
上記MicrosoftのExcelのようなスプレッドシートにおいて、ワークシート内に図、表、文字などのオブジェクトを配置して、資料を作成する事が日常的に行われている。特に、表を作成する場合は、所定のセルを参照して表を作成することができ、所定のセルの内容を修正することにより、表の内容を自動的に修正することができる。また、スプレッドシートでは範囲やオブジェクトを指定することにより、指定された範囲やオブジェクトのみを用紙に印刷したり画面に表示させたりすることができる。
【０００４】
このようなオブジェクトの印刷に関して、例えば、下記特許文献１には、グラフの描画結果が複数ページに区分けされていた場合や、同じシート上にある表とグラフとが別ページに区分けされていた場合に、これらが同じページに印刷されるように印刷を制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−０６８０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、所定のセルを参照して表を作成するなど、スプレッドシートではオブジェクトを関連付けることができるが、範囲やオブジェクトを指定した場合、指定された範囲やオブジェクトのみが出力対象になるため、出力対象のオブジェクトに関連付けられたオブジェクトを、出力対象のオブジェクトと同じ用紙に印刷したり、同じ画面に表示させたりすることができない。
【０００７】
この問題に対して、上記特許文献１では、表とその表から生成されるグラフとが同じページに印刷されるように印刷データを生成しているが、表がさらに別の表を参照していた場合に、参照される表まで同じページに印刷したり表示したりすることはできない。そのため、印刷物や画面を見るユーザは、出力対象の表を確認する際に、参照される表が印刷されている印刷物や表示されている画面を確認しなければならず、作業が非常に煩雑になるという問題があった。
【０００８】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、スプレッドシートのオブジェクトを出力する際に、出力対象の表とその表が参照する情報とを１ページに集約して出力することができる出力制御プログラム及び出力制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一側面は、スプレッドシートのデータを処理する装置で動作する出力制御プログラムであって、前記装置に、前記スプレッドシートのデータを解析して、出力するオブジェクトを指定する出力指定情報を含む設定情報を取得し、前記設定情報に基づいて、出力対象の表データを抽出する第１処理、前記出力対象の表データが、出力対象でない他の表データを参照しているかを判断し、前記出力対象の表データが前記他の表データを参照している場合に、前記出力対象の表データと前記他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更する第２処理、前記変更したレイアウトに従ってオブジェクトを配置した出力データを生成して、印刷装置又は表示装置に出力する第３処理、を実行させることを特徴とする。
【００１０】
本発明の一側面は、スプレッドシートのデータを処理する装置と、印刷装置又は表示装置と、を含むシステムにおける出力制御方法であって、前記装置は、前記スプレッドシートのデータを解析して、出力するオブジェクトを指定する出力指定情報を含む設定情報を取得し、前記設定情報に基づいて、出力対象の表データを抽出する第１処理と、前記出力対象の表データが、出力対象でない他の表データを参照しているかを判断し、前記出力対象の表データが前記他の表データを参照している場合に、前記出力対象の表データと前記他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更する第２処理と、前記変更したレイアウトに従ってオブジェクトを配置した出力データを生成して、印刷装置又は表示装置に出力する第３処理と、を実行することを特徴とする。
【発明の効果】
【００１１】
本発明の出力制御プログラム及び出力制御方法によれば、スプレッドシートのオブジェクトを出力する際に、出力対象の表とその表が参照する情報とを１ページに集約して出力することができる。
【００１２】
その理由は、スプレッドシートのデータを処理する装置で動作する出力制御プログラムは、スプレッドシートのデータを解析して設定情報を取得し、取得した設定情報に基づいて出力対象の表データを抽出し、抽出した表データが他の表データを参照しているかを判断し、他の表データを参照している場合は、出力対象の表データと参照している他の表データの少なくとも一部とが１ページに集約されるようにレイアウトを変更し、変更したレイアウトでオブジェクトを配置した出力データを生成して印刷装置又は表示装置に出力する制御を行うからである。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例に係る印刷システムの構成を示す模式図である。
【図２】本発明の一実施例に係る印刷システムの構成を示す模式図である。
【図３】本発明の一実施例に係るクライアント端末の構成を示すブロック図である。
【図４】本発明の一実施例に係るコントローラの構成を示すブロック図である。
【図５】本発明の一実施例に係る印刷装置の構成を示すブロック図である。
【図６】従来の表データの出力における問題を説明する模式図である。
【図７】本発明の一実施例に係る出力制御方法を説明する模式図である。
【図８】本発明の一実施例に係るコントローラの処理を示すフローチャート図である。
【図９】表データの指定例（範囲を指定する場合）を示す模式図である。
【図１０】表データの指定例（グラフを指定する場合）を示す模式図である。
【図１１】表データの数式例を示す模式図である。
【図１２】本発明の一実施例に係るスプレッドシートの表データの全体の特定方法を示す模式図である。
【図１３】本発明の一実施例に係るスプレッドシートの参照表データの特定方法を示す模式図である。
【図１４】参照表データが更に他の表データを参照している場合を示す模式図である。
【図１５】本発明の一実施例に係るスプレッドシートの表データと参照表データとを示す模式図である。
【発明を実施するための形態】
【００１４】
背景技術で示したように、MicrosoftのExcelのようなスプレッドシートでは、範囲やオブジェクトを指定した場合、指定された範囲やオブジェクトのみが出力対象になるため、出力対象のオブジェクトに関連付けられたオブジェクトを同じページに印刷したり、同じ画面に表示させたりすることができない。例えば、表とその表に参照される表とが複数ページ、或は別のワークシートに分かれている場合、これらの複数の表は別々に出力される。そのため、表の内容が正しいかどうかを確認したい場合、ユーザはいちいちページを跨いだり、或はシートを跨いだりして参照される表の内容を確認しなければならず、作業が非常に煩雑になる。また、印刷設定はワークシート毎に行うため、それぞれのワークシートに対して同じ印刷設定操作を行う必要があり、作業が非常に煩雑になる。
【００１５】
そこで、本発明の一実施の形態では、スプレッドシートに含まれる表を出力する際に、表同士の関係性を分析し、表が別の表を参照している場合、元の表と参照される表とが別のページ或は別のワークシートにあっても、これらの表が同じページに集約して出力されるように制御する。
【００１６】
具体的には、スプレッドシートのデータを処理する装置では、スプレッドシートのデータを解析して出力指定情報を含む設定情報を取得し、取得した設定情報に基づいて出力対象の表データを抽出し、出力対象の表データに含まれる各セルの数式などに基づいて、当該表データが他の表データを参照しているかを判断し、他の表データを参照している場合は、出力対象の表データと参照している他の表データの少なくとも一部とが同一ページに集約されるようにレイアウトを変更し、変更したレイアウトでオブジェクトを配置した出力データを生成して印刷装置や表示装置などの出力装置に出力する制御を行う。
【００１７】
これにより、出力された１ページのみで資料の全体を見渡すことができ、表データが正しいかどうかを確認したい場合に、わざわざ参照先の表データを見に行く必要がなくなり、ユーザの手間を減らすことができる。
【実施例】
【００１８】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る出力制御プログラム及び出力制御方法について、図１乃至図１５を参照して説明する。図１及び図２は、本実施例の印刷システムの構成を示す模式図であり、図３乃至図５は、各々、クライアント端末、コントローラ、印刷装置の構成を示すブロック図である。また、図６は、表データの出力における問題を説明する模式図、図７は、本実施例の出力制御方法を説明する模式図であり、図８は、本実施例のコントローラの処理を示すフローチャート図である。また、図９及び図１０は、表データの指定例を示す模式図であり、図１１は、表データの数式例を示す模式図である。また、図１２及び図１３は、本実施例のスプレッドシートの参照表データの特定方法を示す模式図、図１４は、参照表データが更に他の表データを参照している場合を示す模式図であり、図１５は、本実施例のスプレッドシートの表データと参照表データとを示す模式図である。
【００１９】
なお、本発明の出力制御は、スプレッドシートの表データを印刷する場合及び表示する場合の双方に適用可能であるが、以下の実施例では、スプレッドシートのダイレクトプリントが指示された場合において、表データと参照される表データとを同じページに集約して印刷する場合の制御について説明する。また、本発明における表データとは、複数のセルで構成される表の各セルの情報を記述したデータである。
【００２０】
図１に示すように、本実施例の印刷システム１０は、クライアント端末２０とコントローラ３０と印刷装置４０などで構成される。これらはイーサネット（登録商標）、トークンリング、ＦＤＤＩ（Fiber-Distributed Data Interface）等の規格により定められるＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等の通信ネットワーク５０を介して接続されている。
【００２１】
なお、コントローラ３０と印刷装置４０とはＰＣＩ（Peripheral Component Interconnect）接続などの専用線で接続されていてもよい。また、図１では、印刷システム１０をクライアント端末２０とコントローラ３０と印刷装置４０とで構成したが、図２に示すように、コントローラ３０は印刷装置４０に内蔵される構成としてもよい。以下、図１の印刷システム１０を前提にして、各装置について説明する。
【００２２】
［クライアント端末］
クライアント端末２０は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートのデータ（以下、資料データと呼ぶ。）を作成してコントローラ３０に送信する。このクライアント端末２０は、図３（ａ）に示すように、制御部２１、記憶部２５、ネットワークＩ／Ｆ部２６、表示部２７、操作部２８などで構成される。
【００２３】
制御部２１は、ＣＰＵ（Central Processing Unit）２２と、ＲＯＭ（Read Only Memory）２３やＲＡＭ（Random Access Memory）２４などのメモリとで構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５に記憶した制御プログラムをＲＡＭ２４に展開して実行することにより、クライアント端末２０全体の動作を制御する。また、図３（ｂ）に示すように、上記制御部２１（ＣＰＵ２２）により、ＯＳ（Operating System）２１ａ、アプリケーション２１ｂ、ダイレクトプリントユーティリティ２１ｃなどが実行される。
【００２４】
ＯＳ２１ａは、Windows（登録商標）やMac OS（登録商標）、Android（登録商標）などであり、クライアント端末２０でアプリケーション２１ｂやダイレクトプリントユーティリティ２１ｃなどを動作可能にする。
【００２５】
アプリケーション２１ｂは、MicrosoftのExcelなどの表計算アプリケーション（スプレッドシート）であり、シート内に、図、表、文字などのオブジェクトが配置された資料データを作成する。このスプレッドシートの資料データには、出力指定情報、シート数、シート毎のページ数、ページサイズ、オブジェクト情報（サイズ、描画位置等）などを規定する設定情報が含まれる。
【００２６】
ダイレクトプリントユーティリティ２１ｃは、所定のフォルダ（例えば、記憶部２５内のフォルダ）を監視し、スプレッドシートの資料データが所定のフォルダに保存されたら、コントローラ３０に当該資料データを送信してダイレクトプリントを指示する。
【００２７】
記憶部２５は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成され、ＣＰＵ２２が各部を制御するためのプログラム、スプレッドシートの資料データなどを保存する。
【００２８】
ネットワークＩ／Ｆ部２６は、ＮＩＣ（Network Interface Card）やモデムなどで構成され、クライアント端末２０を通信ネットワーク５０に接続し、スプレッドシートの資料データを送信可能にする。
【００２９】
表示部２７は、液晶表示装置（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（electroluminescence）表示装置などで構成され、アプリケーション２１ｂの画面などを表示する。
【００３０】
操作部２８は、マウスやキーボードなどで構成され、アプリケーション２１ｂを用いたスプレッドシートの資料データの作成、出力対象の指定、ダイレクトプリントの指示などの操作を可能にする。
【００３１】
なお、図３（ｂ）では、ダイレクトプリントユーティリティ２１ｃを用いて印刷指示を行う構成としたが、プリンタドライバを用いて印刷を指示することもできる。その場合は、制御部２１により、プリンタドライバが実行され、プリンタドライバは、アプリケーション２１ｂによって作成された資料データを、ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬ（Page Description Language）のジョブに変換してコントローラ３０に送信する。その際、ジョブに付加される設定情報には、表を構成する各セルの情報や表の参照関係を示す情報が追加される。
【００３２】
［コントローラ］
コントローラ３０は、クライアント端末２０から受信したスプレッドシートの資料データを処理し、印刷装置４０に印刷を指示する。このコントローラ３０は、図４（ａ）に示すように、制御部３１、記憶部３５、ネットワークＩ／Ｆ部３６、表示部３７、操作部３８などで構成される。
【００３３】
制御部３１は、ＣＰＵ３２と、ＲＯＭ３３やＲＡＭ３４などのメモリとで構成され、ＣＰＵ３２は、ＲＯＭ３３や記憶部３５に記憶した制御プログラムをＲＡＭ３４に展開して実行することにより、コントローラ３０全体の動作を制御する。また、図４（ｂ）に示すように、制御部３１は、データ解析部３１ａ、レイアウト変更部３１ｂ、出力データ生成部３１ｃ、表示制御部３１ｄなどとして機能する。
【００３４】
データ解析部３１ａは、クライアント端末２０から受信したスプレッドシートの資料データを解析し、出力指定情報、シート数、シート毎のページ数、ページサイズ、オブジェクト情報（サイズ、描画位置等）などを規定する設定情報を取得する。そして、取得した設定情報に基づいて出力対象のオブジェクトを抽出し、抽出したオブジェクトが出力対象の表データであるかを判断する。また、データ解析部３１ａは、取得した設定情報に基づいて印刷ページサイズを決定し、決定した印刷ページサイズに基づいてシートをページ分割し、分割した各ページにオブジェクトを配置する。
【００３５】
レイアウト変更部３１ｂは、データ解析部３１ａが抽出した出力対象の表データが出力対象でない他の表データを参照しているかを判断する。出力対象の表データが他の表データを参照している場合は、出力対象の表データと参照している他の表データの少なくとも一部とが１ページに集約されるように、これらの表データのレイアウトを変更する。具体的には、出力対象の表データの少なくとも１つのセルに数式が含まれているかを判断し、いずれかのセルに数式が含まれている場合は、数式内の行番号／列番号に出力対象の表データ以外のセルの番号が含まれているかを判断する。出力対象の表データ以外のセルの番号が含まれている場合は、数式内の行番号／列番号に該当する表データを特定し、該当する表データから、数式内の行番号／列番号に対応するセルを特定し、特定したセルに隣接するセルにおけるデータの有無に基づいて、参照している他の表データの全体を特定する。そして、予め定めたルールに従って、参照している表データの全体から集約範囲を設定し、その集約範囲を参照表データとして出力対象に追加する。
【００３６】
出力データ生成部３１ｃは、ＲＩＰ（Raster Image Processor）部として機能し、資料データをラスタライズし、レイアウト変更部３１ｂが変更したレイアウトに従って、出力対象のオブジェクトを配置した出力データ（特に、出力対象の表データと集約範囲とを同一ページに集約した出力データ、好ましくは、出力対象の表データと集約範囲とを隣接して集約した出力データ）を生成し、生成した出力データを印刷装置４０に送信する。
【００３７】
表示制御部３１ｄは、必要に応じて設けられ、レイアウト変更部３１ｂが変更したレイアウトに従って、出力対象のオブジェクトを配置した表示画像（特に、出力対象の表データと集約範囲とを同一ページに集約した表示画像、好ましくは、出力対象の表データと集約範囲とを隣接して集約した表示画像）を表示部３７に表示させる。
【００３８】
なお、上記データ解析部３１ａ、レイアウト変更部３１ｂ、出力データ生成部３１ｃ、表示制御部３１ｄはハードウェアとして構成してもよいし、制御部３１をデータ解析部３１ａ、レイアウト変更部３１ｂ、出力データ生成部３１ｃ、表示制御部３１ｄ（特に、データ解析部３１ａ、レイアウト変更部３１ｂ、出力データ生成部３１ｃ）として機能させる出力制御プログラムとして構成し、当該出力制御プログラムをＣＰＵ３２に実行させるようにしてもよい。
【００３９】
記憶部３５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ３２が各部を制御するためのプログラム、クライアント端末２０から受信したスプレッドシートの資料データ、出力データ生成部３１ｃが生成した出力データなどを保存する。
【００４０】
ネットワークＩ／Ｆ部３６は、ＮＩＣやモデムなどで構成され、コントローラ３０を通信ネットワーク５０に接続し、クライアント端末２０からスプレッドシートの資料データを受信可能にし、印刷装置４０に出力データを送信可能にする。
【００４１】
表示部３７は、液晶表示装置や有機ＥＬ表示装置などで構成される表示装置であり、各種画面を表示する。本実施例では、特に、表示制御部３１ｄの制御に従って、レイアウト変更部３１ｂが変更したレイアウトに従って、オブジェクトを配置した表示画像を表示する。
【００４２】
操作部３８は、マウスやキーボードなどで構成され、各種操作を可能にする。
【００４３】
［印刷装置］
印刷装置４０は、ＭＦＰ（Multi-Functional Peripherals）や単機能プリンタなどであり、コントローラ３０から受信した出力データに基づいて、用紙に印刷を行う。この印刷装置４０は、図５に示すように、制御部４１、記憶部４５、ネットワークＩ／Ｆ部４６、表示操作部４７、読み取り部４８、印刷部４９などで構成される。
【００４４】
制御部４１は、ＣＰＵ４２とＲＯＭ４３やＲＡＭ４４などのメモリとで構成され、ＣＰＵ４２は、ＲＯＭ４３や記憶部４５に記憶した制御プログラムをＲＡＭ４４に展開して実行することにより、印刷装置４０全体の動作を制御する。
【００４５】
記憶部４５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ４２が各部を制御するためのプログラム、自装置の処理機能に関する情報、出力データなどを記憶する。
【００４６】
ネットワークＩ／Ｆ部４６は、ＮＩＣやモデムなどで構成され、印刷装置４０を通信ネットワーク５０に接続し、コントローラ３０から出力データを受信可能にする。
【００４７】
表示操作部４７は、表示部上に透明電極が格子状に配置された感圧式の操作部（タッチセンサ）を設けたタッチパネルなどであり、印刷処理に関する各種画面を表示し、印刷に関する各種操作を可能にする。
【００４８】
読み取り部４８は、原稿台上の原稿から画像データを光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成される。なお、読み取り部４８は必須ではない。
【００４９】
印刷部４９は、給紙部から供給される用紙に印刷画像を形成して排紙部に出力する印刷エンジンである。この印刷部４９は、例えば、印刷画像に基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と１次転写ローラとを備え、ＣＭＹＫの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する２次転写ローラと、用紙に転写されたトナー像を定着させる定着部などで構成される。
【００５０】
なお、図１乃至図５は、本実施例の印刷システム１０の一例であり、各装置の構成や制御は適宜変更可能である。例えば、上記では、コントローラ３０が印刷装置４０を制御する場合について記載したが、図２に示すように、コントローラ３０が印刷装置４０に内蔵される場合は、印刷装置４０の制御部４１をデータ解析部、レイアウト変更部、出力データ生成部、表示制御部として機能させる（ＣＰＵ４２に出力制御プログラムを実行させる）ようにしてもよい。
【００５１】
また、上記では、コントローラ３０の制御部３１をデータ解析部３１ａ、レイアウト変更部３１ｂ、出力データ生成部３１ｃ、表示制御部３１ｄとして機能させる構成としたが、クライアント端末２０の制御部２１をレイアウト変更部、表示制御部などとして機能させる（又はアプリケーション２１ｂにレイアウト変更部、表示制御部などの機能を持たせる）ようにしてもよい。
【００５２】
上記構成の印刷システム１０における出力制御について、図６及び図７を参照して概説する。図６に示すように、例えば、ワークシートが４ページで構成され、表データ（２ページ目の表データ）が別の表データ（４ページ目の表データ）を参照している場合、元の表データが正しいかどうかを確認するためには、関連する情報と対比して検討する必要がある。しかしながら、表データと参照される表データ（参照表データと呼ぶ。）とが複数ページ、或は別のワークシートに分かれている場合、ユーザはいちいちページを跨いだり、或はシートを跨いだりして複数の表データを行き来して確認する必要があり、作業が非常に煩雑である。
【００５３】
この問題に対して、本実施例では、図６に示すワークシートの４ページに対して、図７（ａ）に示すように、出力対象として１〜３ページの太線で囲んだオブジェクトを指定した場合に、図７（ｂ）に示すように、１〜３ページのオブジェクトのみならず、２ページ目のオブジェクト（表データ）が参照している４ページ目のオブジェクト（参照表データ）も出力対象に含める。また、元の表データと参照表データとをより対比しやすくするために、図７（ｃ）に示すように、これらを近接して配置（４ページ目の参照表データを２ページ目の表データの直後に配置）する。
【００５４】
以下、本実施例のコントローラ３０（又はコントローラ３０を内蔵する印刷装置４０）の動作について具体的に説明する。ＣＰＵ３２は、ＲＯＭ３３又は記憶部３５に記憶した出力制御プログラムをＲＡＭ３４に展開して実行することにより、図８のフローチャート図に示す各ステップの処理を実行する。なお、以下の説明において、クライアント端末２０のアプリケーション２１ｂを用いてスプレッドシートの資料データを作成し、ダイレクトプリントユーティリティ２１ｃにより資料データがコントローラ３０（又はコントローラ３０を内蔵する印刷装置４０）に送信されるものとする。
【００５５】
コントローラ３０の制御部３１（データ解析部３１ａ）は、クライアント端末２０から資料データを受信し、資料データを解析して設定情報（出力指定情報、シート数、シート毎のページ数、ページサイズ、オブジェクト情報など）を取得する（Ｓ１０１）。なお、出力指定情報により出力対象のオブジェクトが指定されるが、出力対象の表データを指定する方法として、（１）範囲を指定する方法と、（２）グラフを指定する方法の２つの方法がある。（１）に関しては、例えば、図９に示すように、クライアント端末２０のアプリケーション２１ｂで、表を囲む枠を描画することにより、出力対象の表データを指定することができる。また、（２）に関しては、例えば、図１０に示すように、クライアント端末２０のアプリケーション２１ｂ上でグラフを指定したり、クライアント端末２０のダイレクトプリントユーティリティ２１ｃによる印刷設定などでグラフを選択・指定したり、コントローラ３０の操作部３８などでグラフを選択・指定したりすることにより、出力対象の表データを指定することができる。また、資料データ内の全ての表データを出力対象とするように指定することも可能である。
【００５６】
次に、制御部３１（データ解析部３１ａ）は、取得した設定情報（出力指定情報）に基づいて出力対象のオブジェクトを抽出し（Ｓ１０２）、抽出したオブジェクトが出力対象の表データであるかを判断する（Ｓ１０３）。抽出したオブジェクトが出力対象の表データでない場合（例えば、グラフの場合）は（Ｓ１０３のＮｏ）、制御部３１（出力データ生成部３１ｃ）は、抽出したオブジェクトを出力データに入れずに（Ｓ１１０）、Ｓ１１１に遷移し、抽出したオブジェクトが出力対象の表データである場合は（Ｓ１０３のＹｅｓ）、抽出した表データを出力データに入れる（Ｓ１０４）。なお、上記では抽出したオブジェクトがグラフの場合に出力データに入れないようにしたが、グラフが出力対象の表データに基づいて作成されている場合は、当該グラフのデータを出力データに入れ、出力対象の表データとは異なるページに出力されるようにしてもよい。
【００５７】
次に、制御部３１（レイアウト変更部３１ｂ）は、出力対象の表データの少なくとも１つのセルに数式が含まれるかを判断し（Ｓ１０５）、表データに数式が含まれる場合は（Ｓ１０５のＹｅｓ）、数式内の行番号／列番号に元の表データ以外のセルの番号が含まれるかを判断する（Ｓ１０６）。表データに数式が含まれない場合（Ｓ１０５のＮｏ）、又は、数式内の行番号／列番号に元の表データ以外のセルの番号が含まれない（他の表データを参照しない）場合は（Ｓ１０６のＮｏ）、参照する表データを探す必要がないため、Ｓ１１１に遷移する。
【００５８】
一方、数式内の行番号／列番号に元の表データ以外のセルの番号が含まれる場合は（Ｓ１０６のＹｅｓ）、制御部３１（レイアウト変更部３１ｂ）は、数式内の行番号／列番号に対応する表データを特定する（Ｓ１０７）。そして、制御部３１（レイアウト変更部３１ｂ）は、該当する表データから、数式内の行番号／列番号に該当するセルを特定し、該当セルに隣接するセルにおけるデータの有無に基づいて、参照している表データの全体を特定する（Ｓ１０８）。
【００５９】
例えば、図１１に示すように、表データの数式（ここでは、太い実線で囲んだ「サンプル」というシートのＫ２２、Ｌ２２、Ｍ２２のセルを指定する数式）を抽出する。また、図１２に示すように、太い破線で囲んだセルが、上記「サンプル」というシートのＫ２２、Ｌ２２、Ｍ２２のセルの場合、それらのセルの上下左右の何らかのデータが入っているセルを特定する。ここでは、上１行、下３行、左３列にデータが入っているため、図の太い実線で囲んだ領域を、参照している表データの全体として認識する。
【００６０】
次に、制御部３１（レイアウト変更部３１ｂ）は、予め定めたルールに従って、参照している表データの全体から集約範囲を設定し、設定した集約範囲が出力対象となる表データと同じページに集約されるようにレイアウトを変更し、制御部３１（出力データ生成部３１ｃ）は、設定した集約範囲（参照表データ）を出力データに入れる（Ｓ１０９）。この集約範囲の設定方法としては以下の３つの方法がある。
【００６１】
第１の方法は、参照している表データの全体を参照表データとする方法である。例えば、参照している表データのサイズが出力対象となる表データのサイズ相当、或は出力対象となる表データよりも小さい、或は大きくても１、２行／１、２列程度の場合（すなわち、参照している表データのサイズが出力対象となる表データのサイズと同等の場合）は、参照している表データの全体を参照表データとする。また、参照している表データのサイズが、出力対象となる表データと同一ページに集約する際に１ページの出力範囲に収まるレベルの場合は、参照している表データの全体を参照表データとする。なお、参照している表データを縮小などして１ページに収めることもできるが、その際に表の可読性が失わないように考慮することが好ましく、例えば印刷の際のフォントサイズが６ｐｔ以上を確保できるようにすることが好ましい。また、参照している表データの全セルの数に対する、数式内の行番号／列番号に該当するセルの数の割合が５０％以上の場合は、参照している表データの全体を参照表データとし、５０％未満の場合は、後述する第２の方法に従って、指定した一部を参照表データとする。
【００６２】
第２の方法は、参照している表データの一部を参照表データとする方法である。例えば、図１３（ａ）に示す出力対象の表データにおける太い実線で囲んだセルが、図１３（ｂ）に示す表データの太い実線で囲んだセルを参照している場合、出力対象となる表データの数式内の行番号／列番号に該当するセルと、そのセルと同一行及び／又は同一列に配置されているデータ項目を示す項目セル（表データの上下左右の先頭セル（数値以外の文字を含む。））と、を参照表データとする。なお、データ項目がセル結合されている場合、その隣のセル（数値以外の文字を含む。）から、該当セルと行番号又は列番号が一致するセル（ここで「sam」と記載されたセル）を抽出する。
【００６３】
第３の方法は、出力対象となる表データの数式内の行番号／列番号に該当するセルのみを参照表データとする方法である。
【００６４】
出力対象となる表データと上記のいずれかの方法で設定した集約範囲（参照表データ）とを１ページに集約する際、前記した図７（ｂ）に示すように、ページ順に表データを配置してもよいし、図７（ｃ）に示すように、出力対象となる表データと参照表データとが隣接するように配置してもよい。
【００６５】
また、出力対象のオブジェクトをレイアウトした結果、出力対象となる表データと参照表データとがページを跨いでしまう場合は、出力対象となる表データと参照表データとが同じページに集約して印刷されるようにレイアウトを変更する。具体的には、制御部３１（レイアウト変更部３１ｂ）は、出力対象となる表データと参照表データとが同じページの印刷範囲に収まるかどうかを判断し、同じページの印刷範囲に収まらない場合は、出力対象となる表データの前で改ページして、出力対象となる表データと参照表データとを次のページに印刷する。
【００６６】
また、参照される表データがさらに別の表データを参照している場合、その別の表データ（被参照表データと呼ぶ。）も集約対象とする。例えば、図１４に示すように、出力対象となる表データ（図の下側の表データ）の太い破線で囲んだ部分が、参照される表データ（図の中央の表データ）の太い破線で囲んだセルを参照しており、更に参照される表データの太い実線で囲んだセルが、被参照表データ（図の上側の表データ）の太い実線で囲んだセルを参照している場合、参照される表データのみならず、被参照表データも集約対象にする。
【００６７】
図８に戻って、制御部３１（出力データ生成部３１ｃ）は、出力対象の全てのオブジェクトに対してＳ１０３〜Ｓ１１０の処理を実施した後、出力データを印刷装置４０に出力し、印刷装置４０は出力データに基づいて、出力対象となる表データと参照表データと（必要に応じて更に上位の被参照表データと）を集約して描画した印刷物を出力する（Ｓ１１１）。若しくは、制御部３１（表示制御部３１ｄ）は、出力データ生成部３１ｃが生成した出力データに基づいて、出力対象となる表データと参照表データと（必要に応じて更に上位の被参照表データと）とを集約した表示画像を表示部３７に表示させる。
【００６８】
なお、上記フローでは、制御部３１（出力データ生成部３１ｃ）は、Ｓ１０４で出力対象の表データを出力データに入れ、Ｓ１０９で集約範囲を出力データに入れたが、制御部３１（レイアウト変更部３１ｂ）がレイアウトを変更した後に、変更したレイアウトに従って出力データを生成してもよい。
【００６９】
このように、表データが別の表データを参照している場合、参照される別の表データが別のページ或は別のワークシートにあっても、表データと参照される表データとを同じページに集約して出力することで、資料の全体を見渡すことができ、ユーザはいちいち複数の表データを確認する煩雑な作業を省略することができる。さらに、表データが正しいか或はどういう意味のデータであるのかを確認する際、その表データのみならず、対象となる表データとは異なる情報を持つ参照表データ（必要に応じて更に上位の被参照表データ）も集約することで、正確さや妥当性の判断材料を増やすことができ、一度に効率よく表データを確認することができる。
【００７０】
例えば、図１４に示すように、一つ目の参照表データでＡ、Ｂ、Ｃランクの数値を合わせるとＮＧ件数が２５件になることが分かるが、さらにもう一つ上位の被参照表データからは、この２５件が他の評価項目から検出したＮＧ件数よりも少なく、この評価項目における品質が良いという情報が得られる。また、例えば、図１５（ａ）に示すように、セルの値がプルダウンされたデータの中から選択された場合、図１５（ｂ）に示す参照表データ（プルダウンの選択肢）も一緒に出力することで、どういう選択肢があって、後にどういうステップ（手続き）を踏む必要があるのか等の情報も得られる。
【００７１】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００７２】
例えば、上記実施例では、出力制御としてダイレクトプリントにおける印刷制御を例にして説明したが、アプリケーション２１ｂが作成した資料データをクライアント端末２０やコントローラ３０などで表示する場合に対しても、本発明の出力制御方法を同様に適用することができる。
【産業上の利用可能性】
【００７３】
本発明は、表データの出力を制御する出力制御プログラム、当該出力制御プログラムを記録した記録媒体及び出力制御方法に利用可能である。
【符号の説明】
【００７４】
１０  印刷システム
２０  クライアント端末
２１  制御部
２１ａ  ＯＳ
２１ｂ  アプリケーション
２１ｃ  ダイレクトプリントユーティリティ
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  ネットワークＩ／Ｆ部
２７  表示部
２８  操作部
３０  コントローラ
３１  制御部
３１ａ  データ解析部
３１ｂ  レイアウト変更部
３１ｃ  出力データ生成部
３１ｄ  表示制御部
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  記憶部
３６  ネットワークＩ／Ｆ部
３７  表示部
３８  操作部
４０  印刷装置
４１  制御部
４２  ＣＰＵ
４３  ＲＯＭ
４４  ＲＡＭ
４５  記憶部
４６  ネットワークＩ／Ｆ部
４７  表示操作部
４８  読み取り部
４９  印刷部
５０  通信ネットワーク
【図１】
2018165000.tif 000003
【図２】
2018165000.tif 000004
【図３】
2018165000.tif 000005
【図４】
2018165000.tif 000006
【図５】
2018165000.tif 000007
【図６】
2018165000.tif 000008
【図７】
2018165000.tif 000009
【図８】
2018165000.tif 000010
【図９】
2018165000.tif 000011
【図１０】
2018165000.tif 000012
【図１１】
2018165000.tif 000013
【図１２】
2018165000.tif 000014
【図１３】
2018165000.tif 000015
【図１４】
2018165000.tif 000016
【図１５】
2018165000.tif 000017