(57)【要約】【課題】手作業によるセルやレイアウト調整の不要なスプレッドシートであって、複数の表に対応する印刷データが出力された１枚のスプレッドシートを生成することを可能とする技術を提供する。【解決手段】スプレッドシート生成システム１は、中間データ生成装置２、中間データ合成装置３、スプレッドシート出力装置４を備える。前記中間データ生成装置２は、複数の表に対応する印刷データから、複数の中間データを生成する。前記中間データ合成装置３は、前記中間データを合成して、１枚のスプレッドシートに対応する合成データを生成する。前記スプレッドシート出力装置４は、前記合成データをスプレッドシート形式に変換してスプレッドシートを出力する。【選択図】図１
2011198296.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成する、中間データ生成ステップと、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正する、合成後位置情報生成ステップと、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定する、フォーマット定義決定ステップと、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力する、合成ステップと、
前記合成データの各セル情報をそれぞれスプレッドシート形式のデータに変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータとして、スプレッドシートを出力する、スプレッドシート出力ステップと、
を実行させることを特徴とするスプレッドシート生成プログラム。
【請求項２】
前記セル制御情報は、基本セル幅、基本セル高さ、丸めセル幅、丸めセル高さを含む情報であって、
前記フォーマット定義決定ステップは、
まず、前記各項目の合成後の位置情報におけるｘ座標について該各項目をソートし、該ソートした項目について順にｘ座標値の差を求めることで項目間の距離を求め、該項目間の距離が、前記丸めセル幅未満である場合にはフォーマット定義における列を設定せず、該項目間の距離が該丸めセル幅以上でかつ前記基本セル幅の２倍以上である場合には、該基本セル幅で該フォーマット定義における列を設定し、該項目間の距離が該丸め幅以上でかつ該基本セル幅の２倍未満である場合には該項目間の距離で該フォーマット定義における列を設定し、前記ｘ座標についてソートした全項目を処理した後、
前記各項目の合成後の位置情報におけるｙ座標について該各項目をソートし、該ソートした項目について順にｙ座標値の差を求めることで項目間の距離を求め、該項目間の距離が前記丸めセル高さ未満である場合にはフォーマット定義における行を設定せず、該項目間の距離が該丸め高さ以上でかつ前記基本セル高さの２倍以上である場合には該基本セル高さで該フォーマット定義における行を設定し、該項目間の距離が該丸め高さ以上でかつ該基本セル高さの２倍未満である場合には該項目間の距離で該フォーマット定義における行を設定し、前記ｙ座標についてソートした全項目を処理し、
前記出力するスプレッドシートのフォーマット定義を決定する、ことを特徴とする請求項１記載のスプレッドシート生成プログラム。
【請求項３】
前記項目に関する情報は、該項目の範囲を示す情報を含み、
前記合成ステップにおいて、前記各項目の合成後の位置情報と、前記項目の範囲を示す情報と、に基づいて、該項目が前記フォーマット定義に基づいたスプレッドシート上の複数のセルにまたがって配置されると判断された場合に、前記セル情報が更に備えるセル結合に関する情報を格納する領域に、該当するセル範囲を結合することを示す情報を記録することを特徴とする請求項１または２記載のスプレッドシート生成プログラム。
【請求項４】
前記項目に関する情報とは、該項目のデータと、該データのデータ長と、該項目の範囲と、該項目のフォント情報と、該項目の配置情報と、該項目の編集方式と、を含むことを特徴とする請求項１乃至請求項３いずれか一項に記載のスプレッドシート生成プログラム。
【請求項５】
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成する、中間データ生成手段と、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正する、合成後位置情報生成手段と、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定する、フォーマット定義決定手段と、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力する、合成手段と、
前記合成データの各セル情報をそれぞれスプレッドシート形式に変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータにして、スプレッドシートを出力する、スプレッドシート出力手段と、
を備えることを特徴とするスプレッドシート生成装置。
【請求項６】
情報処理装置が、
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成し、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正し、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定し、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力し、
前記合成データの各セル情報をそれぞれスプレッドシート形式に変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータとして、スプレッドシートを出力する、
ことを特徴とするスプレッドシート生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷データからスプレッドシートを生成する技術に関する。
【背景技術】
【０００２】
表計算ソフトウェアで用いられる、行と列で構成される表をスプレッドシートという。
従来、印刷データをスプレッドシートに出力する場合、碁盤目状のスプレッドシート、つまり細かいセル幅、セル高さのスプレッドシート上に印刷データを出力していた。この理由は、表はセル幅、セル高さによりレイアウトが決まるが、印刷はドットによる座標位置でレイアウトが決定されるためである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許３９８７０６６号公報
【特許文献２】特開平１１−１６７４７５号公報
【特許文献３】国際公開ＷＯ２００９／００１４６２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のように、印刷データを表計算ソフトウェアのスプレッドシートに出力する場合、碁盤目状のスプレッドシートに印刷データを出力していた。碁盤目状のスプレッドシートのように細かいセル幅、セル高さの表が生成されると、無駄なセルが多くなり、データの二次利用ができない表となってしまう。そこで、ユーザは、印刷データを碁盤目状スプレッドシートに出力した後、手作業でレイアウトとセルの調整をする必要がある、という問題があった（図４９参照）。
【０００５】
また、印刷時に１枚の紙に２ページ分の原稿を印刷する２ＵＰや、４ページ分の原稿を印刷する４ＵＰのように、１枚のスプレッドシートに複数の表に対応する印刷データを出力し、１枚のスプレッドシート上に複数の表を表示したいという要求がある。しかしながら、この場合も手作業によるレイアウトの調整が必要となる。レイアウトの異なる表を合成する場合、例えば図５０に示す表１と表２を合成する場合、スプレッドシートのレイアウトは表１のセル幅、セル高さに依存してしまう。このため表２のレイアウトを維持するためには手作業で行や列の追加とセル幅（列幅）、セル高さ（行高さ）の調整を施す必要がある。つまり、図５０では、二つの表を合成した後、表２に対応する部分については、列幅を手動で調整する必要がある。また、合成後、表２に対応する部分について、行幅を調整するとコピー先のレイアウトが崩れてしまうため、行追加などの調整が手動で必要である。このように複雑な調整等が必要となるため、印刷時に２ＵＰ,４ＵＰに合成し紙に印刷する機能はあるが、最初から１枚のスプレッドシート上に複数の表に対応する印刷データを出力する技術は存在しなかった。
【０００６】
そこで、本発明は、手作業によるセルやレイアウト調整の不要なスプレッドシートであって、複数の表に対応する印刷データが出力された１枚のスプレッドシートを生成することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の一態様によれば、情報処理装置に、中間データ生成ステップ、合成後位置情報生成ステップ、フォーマット定義決定ステップ、合成ステップ、スプレッドシート出力ステップを実行させるプログラムが提供される。
【０００８】
前記中間データ生成ステップは、複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成する。
【０００９】
前記合成後位置情報生成ステップは、前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正する。
【００１０】
前記フォーマット定義決定ステップは、前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定する。
【００１１】
前記合成ステップは、まず、前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出する。そして、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力する。
【００１２】
前記スプレッドシート出力ステップは、前記合成データの各セル情報をそれぞれスプレッドシート形式のデータに変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータとして、スプレッドシートを出力する。
【００１３】
また、別の態様においては、上記各ステップとそれぞれ同様に動作する中間データ生成手段、合成後位置情報生成手段、フォーマット定義決定手段、合成手段、スプレッドシート出力手段を備える情報処理装置が提供される。
【００１４】
また、別の態様においては、前記プログラムに従って情報処理装置が実行する方法も提供される。
【発明の効果】
【００１５】
開示の一態様によれば、手作業によるセルやレイアウト調整の不要なスプレッドシートであって、複数の表に対応する印刷データが出力された１枚のスプレッドシートを生成することが可能となる。これにより、ユーザ等の作業効率を上げることができ、また、印刷データの二次利用性を高める効果がある。
【図面の簡単な説明】
【００１６】
【図１】本実施形態のスプレッドシート生成システムの構成を示す図である。
【図２】情報処理装置の構成を示す図である。
【図３】本実施形態のスプレッドシート生成システムのより詳しい構成を示す図である。
【図４】本実施形態における座標軸を説明する図である。
【図５】本実施形態における区画を説明する図である。
【図６】印刷データとフォーマット定義情報のデータ構造を説明する図である。
【図７】フォーマット定義情報の＜１＞項目情報のデータ構造を説明する図である。
【図８】編集形式を説明する図である。
【図９】フォーマット定義情報の＜２＞罫線情報のデータ構造を説明する図である。
【図１０】中間データ（表）のデータ構造を説明する図である。
【図１１】中間データ（表）の＜１＞項目情報のデータ構造を説明する図である。
【図１２】中間データ（表）の＜２＞罫線情報のデータ構造を説明する図である。
【図１３】中間データ（表）の＜３＞論理座標情報（合成前）のデータ構造を説明する図である。
【図１４】中間データ（表）の＜４＞縦横サイズのデータ構造を説明する図である。
【図１５】表合成制御情報のデータ構造を説明する図である。
【図１６】表合成制御情報の一例を示す図である。
【図１７】中間データ管理情報のデータ構造を説明する図である。
【図１８】中間データ管理情報の一例（その１）を示す図である。
【図１９】中間データに対応する表のサイズの一覧の一例を示す図である。
【図２０】中間データ管理情報の（５）中間データ合成後の縦横サイズを算出するための手順を説明する図である。
【図２１】中間データ管理情報の一例（その２）を示す図である。
【図２２】論理座標情報（合成後）のデータ構造を説明する図である。
【図２３】論理座標情報（合成後）の算出方法を説明する図である。
【図２４】セル制御情報のデータ構造を説明する図である。
【図２５】セル定義情報のデータ構造を説明する図である。
【図２６】論理座標情報（合成後）の昇順ソートの一例を示す図である。
【図２７】スプレッドシートのフォーマット定義の決定について具体的に説明する図である。
【図２８】セル情報のデータ構造を説明する図である。
【図２９】セル結合の概略を説明する図である。
【図３０】本実施形態のスプレッドシート生成システムの全体システムフローを示す図である。
【図３１】図３０の中間データ生成処理（Ｓ３０１）の詳しいフローを示す図である。
【図３２】図３０の中間データ管理情報生成処理（Ｓ３０２）の詳しいフローを示す図である。
【図３３】図３０のセル定義情報生成処理（Ｓ３０３）の詳しいフローを示す図である。
【図３４】図３３のセル幅の算出処理（Ｓ３３２）の詳しいフローを示す図である。
【図３５】図３４のセル幅の決定処理（Ｓ３４４およびＳ３４６）の詳しいフローを示す図である。
【図３６】図３３のセル高さの算出処理（Ｓ３３４）の詳しいフローを示す図である。
【図３７】図３６のセル高さの決定処理（Ｓ３６４およびＳ３６６）の詳しいフローを示す図である。
【図３８】図３０の中間データ合成処理（Ｓ３０４）の詳しいフローを示す図である。
【図３９】図３８のセル位置変換処理（Ｓ３８５）の詳しいフローを示す図である。
【図４０】図３８のセル位置変換処理（Ｓ３８５）を具体例を参照して説明する図である。
【図４１】図３８のデータ設定処理（Ｓ３８６）の詳しいフローを示す図である。
【図４２】図３８の書式設定処理（Ｓ３８７）の詳しいフローを示す図である。
【図４３】図３８のフォント、配置属性の設定処理（Ｓ３８８）の詳しいフローを示す図である。
【図４４】図３８のセル結合の設定処理（Ｓ３８９）の詳しいフローを示す図である。
【図４５】図３８の罫線、網掛けの設定処理（Ｓ３９０）の詳しいフローを示す図である。
【図４６】図３０のスプレッドシート生成処理（Ｓ３０５）の詳しいフローを示す図である。
【図４７】ＸＭＬ形式のデータの一例を示す図である。
【図４８】本実施形態により、二つの表に対応する印刷データを合成して一枚のスプレッドシートを生成した際の一例を示す図である。
【図４９】印刷データをスプレッドシートに出力した場合の従来の問題点を説明する図である。
【図５０】二つの表に対応する印刷データを合成して一枚のスプレッドシートを生成した場合の問題点を説明する図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、スプレッドシート生成装置の実施の形態について説明する。
図１に本実施形態のスプレッドシート生成システム１の構成を示す。
スプレッドシート生成システム１は、複数の表に対応する印刷データを合成して１枚のスプレッドシートを生成するもので、中間データ生成装置２、中間データ合成装置３、スプレッドシート出力装置４を含む。
【００１８】
表に対応する印刷データは、業務アプリケーション８や帳票定義ツール９などを用いてユーザ等により作成され、印刷データ５およびフォーマット定義情報６として情報処理装置の記憶装置等に格納されている。スプレッドシート生成システム１は、印刷データ５やフォーマット定義情報６を入力情報とする。
【００１９】
スプレッドシート生成システム１の中間データ生成装置２では、印刷データ５とフォーマット定義情報６とから中間データを生成する。本実施形態では、表中の各欄のデータ、すなわち見出し等を示した文字列や数値等を「項目」ということにする。また、各項目に対応する情報であって、項目のデータやそのフォーマット、編集形式、項目の位置情報などを含む情報を項目情報という。中間データは、すべての項目に対応する項目情報と、表の罫線・網掛け等の情報と、各項目の合成前の位置情報と、合成前の表の縦横サイズを含んで生成される。また中間データは各表に対応して生成され、たとえば２つの表に対応する印刷データを合成する場合には２つの中間データが生成される。
【００２０】
中間データ合成装置３では、まず、複数の中間データに含まれるすべての項目について、表合成後の位置情報を求める。次に、求めた項目の位置情報に基づいて、生成するスプレッドシートのフォーマット定義（スプレッドシートのセル幅、セル高さを規定したもの）を決定する。そして、フォーマット定義に基づいたスプレッドシート上に、中間データに含まれるすべての項目を配置し、各項目がどのセルに配置されるかを特定する。これにより、それぞれのセルに対して、配置される項目の項目情報を含むセル情報を生成する。そして更に、項目情報が備える項目の範囲を示す情報に基づいて、複数のセルにまたがって配置される項目があることが検出される場合に、該当セルを結合する情報を、前記セル情報に更に記録する。これによりスプレッドシートのセルの結合を行う。
【００２１】
以上のような処理から、前記全項目に対応するセル情報を生成し、全セル情報を１枚のスプレッドシートに対応する合成データとして出力する。
最後に、スプレッドシート出力装置４では、合成データである、セル情報をスプレッドシート形式に変換して、スプレッドシート７を出力する。
【００２２】
上述のように、本実施形態では、まず複数の表に対応する印刷データをそれぞれ変換し、複数の中間データを生成する。そして、該複数の中間データを合成し、１枚のスプレッドシートに対応する合成データを生成する。更に該合成データをスプレッドシート形式に変換して、スプレッドシートを生成する。このように本実施形態では中間データを利用することにより、複数の表に対応する印刷データを１枚のスプレッドシートに出力することを可能とする。また、中間データを合成する際に、それぞれの表のレイアウトが崩れないように、また、なるべく無駄なセルが生成されないように合成処理を行う。これにより、スプレッドシート生成後に手作業によるセルやレイアウトの調整が不要で、ユーザ等の作業効率を上げることができる。また、印刷データの二次利用性を高めることができる。
【００２３】
尚、図１に示したスプレッドシート生成システム１は、図２に示すようなハードウェア構成の情報処理装置により実現される。
図２の情報処理装置２２は、Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ（ＣＰＵ）１０、Ｒｅａｄ Ｏｎｌｙ ｍｅｍｏｒｙ（ＲＯＭ）１１、 Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（ＲＡＭ）１２、通信インターフェイス１３、入力装置１４、出力装置１５、記憶装置１６、可搬型記憶媒体１９の駆動装置１７を備える。情報処理装置２２が備えるこれら各部は、バス１８により接続されている。
【００２４】
また、情報処理装置２２は通信インターフェイス１３を介してネットワーク２０に接続されている。ネットワーク２０は、Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ（ＬＡＮ）やインターネットなどの任意のネットワークである。
【００２５】
ＣＰＵ１０は、ＲＡＭ１２にプログラムをロードし、ＲＡＭ１２をワーキングエリアとしても用いながらプログラムを実行することにより、情報処理装置２２をスプレッドシート生成システム１として機能させる。すなわち、ＣＰＵ１０はプログラムに従って、後述する処理フローを実現することによりスプレッドシート生成システムとして機能する。その際に、中間データ等のデータの格納部としては、たとえばＲＡＭ１２により実現されるが、ＲＡＭ１２と記憶装置１６の双方により実現されてもよい。
【００２６】
プログラムは、ＲＯＭ１１または記憶装置１６に予め格納されていてもよく、ネットワーク２０を介してプログラム提供者２１から提供され、記憶装置１６に格納されてもよい。あるいは、可搬型記憶媒体１９に格納され、駆動装置１７にセットされた可搬型記憶媒体１９からＲＡＭ１２にロードされ、ＣＰＵ１０により実行されてもよい。可搬型記憶媒体１９としては、Ｃｏｍｐａｃｔ Ｄｉｓｃ（ＣＤ）やＤｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｋ（ＤＶＤ）などの光ディスク、光磁気ディスク、磁気ディスク、不揮発性半導体メモリなど様々な形式の記憶媒体を使用することができる。
【００２７】
入力装置１４は、マウスなどのポインティングデバイスやキーボードである。出力装置１５は、例えば液晶ディスプレイなどの表示装置である。記憶装置１６は、ハードディスク装置などの磁気ディスク装置でもよく、他の種類の記憶装置でもよい。
【００２８】
以上のように本実施形態のスプレッドシート生成システム１が情報処理装置で構成されることを説明した。以下、本実施形態のスプレッドシート生成システム１についてより詳しく説明する。
【００２９】
まず、図３に、スプレッドシート生成システム１のより詳しい構成を示す。
スプレッドシート生成システム１は、中間データ生成部３０、中間データ管理情報生成部３１、セル定義情報生成部３２、中間データ合成部３３、スプレッドシート出力部３４を備える。尚、中間データ生成部３０は中間データ生成装置２に含まれる。また、中間データ管理情報生成部３１、セル定義情報生成部３２、中間データ合成部３３は、中間データ合成装置３に含まれる。また、スプレッドシート出力部３４は、スプレッドシート出力装置４に含まれる。
【００３０】
以下、各部について説明するが、各部によって生成される情報（データ等）の構造については、図を参照して後で説明するため、ここでは簡単な説明とする。
中間データ生成部３０は、フォーマット定義情報と印刷データ３５から表合成用の中間データ（表）３６を、１枚のスプレッドシート上に合成する表の数分だけ生成する。つまり、例えば２ＵＰの場合には２つの表に対応する中間データ（表）３６を生成し、４ＵＰの場合には４つの表に対応する中間データ（表）３６を生成する。
【００３１】
印刷データは表中の各項目に対応する文字列データがシリアルに格納されているレコードである。また、フォーマット定義情報は表の形式を規定した情報である。中間データ（表）３６は、印刷データとフォーマット定義情報に含まれる情報とから、表中の各項目に対応する項目情報、表中の罫線・網掛けなどの情報、表の縦横サイズの情報を含んで生成される。また、中間データ（表）３６は、各項目の印字位置を示す位置情報である、論理座標情報（合成前）を含む。
【００３２】
中間データ管理情報生成部３１は、表合成制御情報３７と中間データ（表）３６から、中間データ管理情報３９を生成する。表合成制御情報３７は、印刷用紙のサイズ、用紙方向、１枚の紙に合成する表の数を指定する情報である。中間データ管理情報生成部３１では、中間データ（表）３６から合成するそれぞれの表の縦と横のサイズを取得し、それに基づいて中間データ合成後の縦横サイズを算出する。中間データ管理情報３９には、表合成制御情報３７に含まれる情報と、中間データ合成後の縦横サイズ、および各表に対応する中間データ（表）３６への参照情報（リンク）が含まれる。
【００３３】
また、中間データ管理生成部３１では、論理座標情報（合成後）３８を算出する。論理座標情報について説明する前にまず、座標軸について説明する。図４に座標軸を示す。縦軸ｙ、横軸ｘとし、ｙ軸は下方向に増加、ｘ軸は右方向に増加する。また、「区画」とは２ＵＰ，４ＵＰする場合に、それぞれの表を配置するために区切った紙の一つ一つの部分である。２ＵＰする場合には、例えば図５（ａ）のように、横方向に長い紙に対し、区画１、区画２が左から順に配置される。また、４ＵＰする場合には、例えば図５（ｂ）のように区画１、区画２の下に順に区画３、区画４が左から配置される。
【００３４】
中間データ管理情報生成部３１は、まず、各表を原点からずらして各区画に配置するための補正情報を算出する。例えば、区画２に配置する表については区画１に対して左方向に移動して配置しなければならないため、区画１に配置する表の分だけｘ座標を右方向に移動した補正情報、例えば（ａ, ０）（但しaは区画１の幅の大きさ）を算出する。次に、算出した補正情報を、中間データ（表）３６に含まれる論理座標情報（合成前）に加えて、各項目の印字位置を示す論理座標情報（合成後）３８を算出する。このように算出した論理座標情報（合成後）３８は、各表を合成した場合の各項目の位置情報を示すものである。
【００３５】
次に、セル定義情報生成部３２は、論理座標情報（合成後）３８とセル制御情報４０とから、セル定義情報４１を生成する。セル制御情報４０は予め設定情報等として与えられる情報である。また、セル制御情報４０は、生成するスプレッドシートのセル幅とセル高さ、つまりフォーマット定義を決定するための基本となるセル幅（基本セル幅）、セル高さ（基本セル高さ）、丸め幅、丸め高さを規定した情報である。該セル制御情報４０と、論理座標情報（合成後）３８とを用いて、生成するスプレッドシートの最適なセル幅（列幅）、セル高さ（行高さ）を決定し、セル定義情報４１（生成するスプレッドシートのフォーマット定義）を生成する。
【００３６】
次に、中間データ合成部３３は、中間データ（表）３６と、中間データ管理情報３９と、セル定義情報４１とから、スプレッドシートを生成する直前のデータであるセル情報４２を生成する。
【００３７】
すなわち、中間データ合成部３３では、まず、中間データ（表）３６の或る項目について、セル定義情報４１で規定されたスプレッドシートのどのセルに配置されるかを算出し、該項目に対応する項目情報を含むセル情報４２を生成する。その後、処理中の項目に対応する項目範囲を示す情報から、該項目が占める範囲に対応するセルの範囲を特定し、該特定したセル範囲に基づいて必要であれば前記スプレッドシート上のセルの結合を行う情報を、前記セル情報４２に記録する。更に、罫線・網掛けなどの範囲を特定し、セル情報４２に格納する。この処理を中間データ（表）３６のすべての項目について行う。そして、生成された全セル情報４２を１枚のスプレッドシートに対応する合成データとして、次のスプレッドシート出力部３４の処理に渡す。
【００３８】
最後に、スプレッドシート出力部３４で、スプレッドシート上の全セル分のセル情報４２をスプレッドシートの形式に変換してスプレッドシート４３を出力する。
以上のように、本実施形態では、印刷データとフォーマット定義情報３５から中間データ（表）３６を合成する表に対応する数だけ生成する。そして次に、中間データ（表）３６と表合成制御情報３７から中間データ管理情報３９を生成する。また、各表に含まれる各項目の合成後の位置情報である論理座標情報（合成後）３８を生成する。次に、セル制御情報４０と論理座標情報（合成後）３８から生成するスプレッドシートのセル幅（列幅）、セル高さ（行高さ）を規定したフォーマット定義である、セル定義情報４１を生成する。そして、中間データ（表）３６、中間データ管理情報３９、セル定義情報４１から、これらの情報を合成し中間データに含まれるすべての項目に対応するセル情報４２を生成する。最後に、スプレッドシート上の全セル分のセル情報１３をスプレッドシート形式に変換して、スプレッドシートを生成する。
【００３９】
以下、各情報についてデータ構造を示して説明する。
まず、図６を参照して、印刷データとフォーマット定義情報３５のデータ構造について説明する。
【００４０】
印刷データは、表中の各項目に対応する文字列データがシリアルに格納されているレコードである。
また、フォーマット定義情報は、各パーティションごとに、＜１＞項目情報、＜２＞罫線情報、を含むデータ構造となっている。＜１＞項目情報の詳しいデータ構造を図７に、＜２＞罫線情報の詳しいデータ構造を図９に示す。
【００４１】
図７に示すように、＜１＞項目情報は、（１）項目名、（２）項目の位置情報、（３）項目領域長、（４）データ長、（５）データ形式、（６）フォント情報、（７）配置情報、（８）編集形式、（９）レコード内位置、の情報を含む。（１）〜（９）の各詳しい説明は以下の通りである。
【００４２】
（１）項目名：項目を識別するための名前（フォーマット定義内で一意）。
（２）項目の位置情報：項目の位置を示す座標位置(項目の最左最下の座標)。
（３）項目領域長：項目の範囲を示す値。
（４）データ長さ：データの長さを示す値(単位：バイト数)。
（５）データ形式：データの種類を示す値（テキストデータ、数値データ、など）。
（６）フォント情報：フォント名やフォントサイズを示す情報。
（７）配置情報：中央揃えなど文字の配置に関する情報。
【００４３】
（８）編集形式：データを編集して出力する場合の編集形式を示す情報（図８参照）。
編集形式は、最終的に生成されるスプレッドシートにおける表示形式を指定するための情報である。（８）編集形式とスプレッドシートの書式（表示形式）の対応を図８に示す。図８において、たとえば、＜１＞項目情報の（５）データ形式が「数値」で（８）編集形式が「９９９９９９９」の場合、スプレッドシートでの書式は「００００００；００００００」となる。他も同様である。
【００４４】
（９）レコード内位置：レコード形式のデータである印刷データの先頭から何バイト目かを示す情報（例えば図６において、項目Ａの（９）レコード内位置は、印刷データ内の「あいうえお」を格納している位置が、印刷データの先頭から何バイト目かを示す情報を格納している。）。
【００４５】
また、図９に示すように、フォーマット定義情報の＜２＞罫線情報のデータ構造は、（１）種別、（２）位置情報などの情報を含む構造となっている。（１）、（２）の各情報の詳しい説明は以下の通りである。
【００４６】
（１）種別：罫線、枠、網掛けを識別する情報。
（２）位置情報：罫線、枠、網掛けの位置や範囲を示す情報で、開始位置（Ｘ１, Ｙ１）、終了位置（Ｘ２, Ｙ２）から成る。尚、枠、網掛けの場合、開始位置は最左最上の座標を示し、終了位置は最右最下の座標を示す。
【００４７】
以上、印刷データとフォーマット定義情報３５のデータ構造について図６〜図９を参照して説明した。
次に、中間データ生成部３０にて、印刷データとフォーマット定義情報３５から生成される中間データ（表）３６のデータ構造について説明する。
【００４８】
図１０に中間データ（表）３６のデータ構造を示す。合成前の表中の各欄の見出し等を示した文字列や数値等を「項目」ということは上述したが、中間データ（表）３６はこの項目をスプレッドシートに出力するための情報を含むように生成される。すなわち図１０に示すように、中間データ（表）３６は、＜１＞項目情報、＜２＞罫線情報、＜３＞論理座標情報（合成前）、＜４＞縦横サイズの情報を含む。＜１＞〜＜４＞の各情報の構成を図１１〜図１４にそれぞれ示す。
【００４９】
まず、図１１に示した＜１＞項目情報について説明する。中間データ（表）３６の＜１＞項目情報は、合成する前の表のすべての項目の分だけ存在する。そして＜１＞項目情報は、（１）項目位置、（２）データ形式、（３）データ長、（４）文字列範囲、（５）配置情報、（６）フォント情報、（７）編集形式、（８）文字列データを含む。（１）〜（８）の各情報の詳しい説明は以下の通りである。
【００５０】
（１）項目位置：項目（文字列）の位置を示す座標情報（項目の最左最下の座標）。フォーマット定義情報の＜１＞項目情報の（２）項目の位置情報のコピーが格納される。
（２）データ形式：データの種類を示す値（テキストデータ、数値データ等）。フォーマット定義情報の＜１＞項目情報の（５）データ形式のコピーが格納される。
【００５１】
（３）データ長：文字列の長さを示す値（単位：バイト数）。フォーマット定義情報の＜１＞項目情報の（４）データ長のコピーが格納される。
（４）項目範囲：項目の範囲を示す値（ｘ軸方向、ｙ軸方向）。フォーマット定義情報の＜１＞項目情報の（３）項目領域長から算出される情報である。
【００５２】
（５）配置情報：中央揃えなど文字の配置に関する情報。フォーマット定義情報の＜１＞項目情報の（７）配置情報のコピーが格納される。
（６）フォント情報：フォント名やフォントサイズを示す情報。フォーマット定義情報の＜１＞項目情報の（６）フォント情報のコピーが格納される。
【００５３】
（７）編集形式：データを編集して出力する場合の編集形式を示す情報。フォーマット定義情報の＜１＞項目情報の（８）編集形式のコピーが格納される。
（８）文字列データ：文字列データが格納される。フォーマット定義情報の＜１＞項目情報の（９）レコード内位置が示す情報と（４）データ長に基づいて印刷データのレコードを読み取り、取得した文字列データが格納される。
【００５４】
次に、中間データ（表）３６の＜２＞罫線情報のデータ構造は、図１２に示すように（１）種別、（２）位置情報を含む構造となっている。（１）、（２）の各情報の詳しい説明は以下の通りである。
【００５５】
（１）種別：罫線、枠、網掛けを識別する情報。フォーマット定義情報の＜２＞罫線情報の（１）種別のコピーが格納される。
（２）位置情報：罫線、枠、網掛けの位置や範囲を示す情報で、開始位置(X1, Y1)、終了位置(X2, Y2)から成る。尚、枠、網掛けの場合、開始位置は最左最上の座標を示し、終了位置は最右最下の座標を示す。フォーマット定義情報の＜２＞罫線情報の（２）位置情報のコピーが格納される。
【００５６】
次に、中間データ（表）３６の＜３＞論理座標情報（合成前）のデータ構造は、図１３に示すように（１）登録数、（２）項目位置のｘ座標、（３）項目位置のｙ座標、を含む構造となっている。（１）〜（３）の各情報の詳しい説明は以下の通りである。
【００５７】
（１）登録数：＜１＞項目情報の数。
（２）項目位置のｘ座標：項目（文字列）の位置を示す座標（項目の最左最上の座標）のｘ座標。つまり、フォーマット定義情報の＜１＞項目情報の（２）項目の位置情報の座標情報のうちのｘ座標で、中間データ（表）３６の＜１＞項目情報に対応して登録数分格納されている。
【００５８】
（３）項目位置のｙ座標：項目（文字列）の位置を示す座標情報（項目の最左最上の座標）のｙ座標。つまり、フォーマット定義情報の＜１＞項目情報の（６）フォント情報からフォントサイズを算出し、フォーマット定義情報の＜１＞項目情報の（２）項目の位置情報の座標のうちのｙ座標から、該フォントサイズ分減算した値。中間データ（表）３６の＜１＞項目情報に対応して登録数分格納されている。
【００５９】
次に、中間データ（表）３６の＜４＞縦横サイズのデータ構造は図１４に示すように（１）縦サイズ、（２）横サイズを含む構造となっている。（１）、（２）の各情報の詳しい説明は以下の通りである。
【００６０】
（１）縦サイズ：中間データに対応する表の縦サイズを示す値。
（２）横サイズ：中間データに対応する表の横サイズを示す値。
以上のように、図１０〜図１４を参照して中間データ（表）３６のデータ構造について説明した。次に、中間データ管理情報生成部３１にて用いられる表合成制御情報３７のデータ構造について説明する。
【００６１】
表合成制御情報３７は、ユーザ等によって予め設定される表合成に関する情報である。図１５に表合成制御情報２７のデータ構造を示す。表合成制御情報２７は、（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向、を含む。（１）〜（４）の各情報の詳しい説明は以下の通りである。
【００６２】
（１）用紙サイズ種別：合成した表を印刷する際に利用する用紙サイズを指定する情報。省略の場合は「Ａ４」。
（２）用紙方向：合成した表を印刷する際に利用する用紙方向を指定する情報。省略の場合は「ポートレート（縦表示）」。
【００６３】
（３）配置属性：表を合成する際の配置属性（２ＵＰか４ＵＰか）を指定する情報。省略の場合は「合成しない」。
（４）配置方向：表を合成する際の配置方向（下方向か右方向か）を指定する情報。省略の場合は「下方向」。尚、当指定は、「（３）配置属性」に「４ＵＰ」を指定している場合だけ有効とする。「２ＵＰ」の場合、「（２）用紙方向」の指定に従い、ポートレートなら下方向、ランドスケープ（横表示）なら右方向とする。 
【００６４】
図１６に、表合成制御情報３７の一例を示す。（１）用紙サイズがＡ４，（２）用紙方向がポートレート、（３）配置属性が４ＵＰ,（４）配置方向が右方向、となっている。
次に、中間データ管理情報生成部３１が生成する中間データ管理情報３９について説明する。図１７に中間データ管理情報３９のデータ構造を示す。中間データ管理情報３９は、（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向、（５）中間データの合成後の縦横サイズ、（６）中間データへの参照情報、を含む。（１）〜（６）の各情報の詳しい説明は以下の通りである。
【００６５】
（１）用紙サイズ種別：合成した表を印刷する際に利用する用紙サイズを指定する情報。表合成制御情報３７の（１）用紙サイズ種別のコピーが格納される。
（２）用紙方向：合成した表を印刷する際に利用する用紙方向を指定する情報。表合成制御情報３７の（２）用紙方向のコピーが格納される。
【００６６】
（３）配置属性：表を合成する際の配置属性（２ＵＰか４ＵＰか）を指定する情報。表合成制御情報３７の（３）配置属性のコピーが格納される。
（４）配置方向：表を合成する際の配置方向（下方向か右方向か）を指定する情報。表合成制御情報３７の（４）配置方向のコピーが格納される。
【００６７】
（５）中間データ合成後の縦横サイズ：２ＵＰ/４ＵＰ後の縦と横のサイズの情報。算出方法については、図１８〜図２２を参照して説明する。
（６）中間データへの参照情報：それぞれの中間データ（表）への参照情報（リンク）が格納される。
【００６８】
さて、表１、表２、表３、表４の４つの表をＡ４縦で４ＵＰに合成する場合に、上記（５）の中間データ合成後の縦横サイズを求める方法について図１８〜図２２を参照して説明する。尚、合成前の各表はそれぞれ、表１はＡ４、ポートレート、表２はＡ４、ランドスケープ、表３はＡ４，ランドスケープ、表４はＡ４ポートレートであるとする。
【００６９】
中間データ管理情報３９は、まず表合成制御情報３７の（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向をそれぞれコピーし、中間データ管理情報３９の（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向にそれぞれ格納する。また、各中間データ（表）３６への参照情報を中間データ管理情報３９の（６）中間データへの参照情報に格納する。これにより、図１８のようになる。
【００７０】
次に、（６）中間データへの参照情報を元に、各中間データ（表）３６を参照し、中間データ（表）３６の＜４＞縦横サイズから、中間データに対応する表のサイズ（縦、横）を抽出する。抽出した表１〜表４のサイズの例を図１９に示す。表１は、縦サイズ：１６２５８（単位：１／１４４０インチ）、横サイズ：１１３３３（単位：１／１４４０インチ）である。表２は、縦サイズ：１１３３３（単位：１／１４４０インチ）、横サイズ：１６２５８（単位：１／１４４０インチ）である。表３は、縦サイズ１１３３３（単位：１／１４４０インチ）、横サイズ１６２５８（単位：１／１４４０インチ）である。表４は、縦サイズ：１６２５８（単位：１／１４４０インチ）、横サイズ：１１３３３（単位：１／１４４０インチ）である。尚、これらの縦横サイズは、Ａ４のサイズ２１０ｍｍ×２９７ｍｍに５ｍｍの余白を設けて、Ａ４サイズを２００ｍｍ×２８７ｍｍとし、これらの長さを１／１４４０インチに単位変換したものである。
【００７１】
中間データに対応する表のサイズを抽出するのを手順１とし、手順２以降、図２０を参照して説明する。手順１で求めた各表のサイズから、Ａ４縦、横のどちらでも配置可能な１区画を求める（図２０、手順２）。上記表１〜表４を合成する例の場合、縦、横の最長のサイズが１６２５８（単位：１／１４４０インチ）なので、１６２５８（単位：１／１４４０インチ）×１６２５８（単位：１／１４４０インチ）の正方形となる。
【００７２】
次に、１区画を印刷する用紙と同じ比率にする。上記表１〜表４を合成する例の場合、印刷する紙がＡ４、用紙方向がポートレート（縦）であるため、縦方向に下駄を履かせて縦を拡大する（図２０、手順３）。つまり、１区画が、縦２１１４５（単位：１／１４４０インチ）×横１６２５８（単位：１／１４４０インチ）となる。手順３で求めた１区画分を合成して、４ＵＰを生成する（図２０、手順４）。これにより、縦４２２７０（単位：１／１４４０インチ）×横３２５１６（単位：１／１４４０インチ）が合成後の縦横サイズとなる。この合成後の縦横サイズは、実際のＡ４サイズの用紙の大きさより大きなサイズとなっている（Ａ４サイズの用紙の大きさは１６２５８(単位：１／１４４０インチ）×１１３３３（単位：１／１４４０インチ）)。しかし、用紙の縦横サイズと合成後の縦横サイズは比率が同一であるため、印刷の際には合成後の縦横サイズをそのまま縮小すればよい。このように、適当な合成後の縦横サイズを求め、中間データ管理情報３９の（５）中間データ合成後の縦横サイズに格納する。
【００７３】
以上のように、（５）中間データ合成後の縦横サイズの値が縦４２２７０（単位：１／１４４０インチ）×横３２５１６（単位：１／１４４０インチ）と求められたが（図２１参照）、各手順に沿って求められる値のみを列挙すると以下のようになる。
【００７４】
・用紙サイズの比率：   １６２５８：  １１３３３（１．３：１）
・必要な１区画：      １６２５８：  １６２５８（１：１）（手順２）
・比率を合わせる：     ２１１２５：  １６２５８（１．３：１）（手順３）
・合成後（４ＵＰ）：    ４２２７０：  ３２５１６（１．３：１）（手順４）
以上のように、図１７〜図２１を参照して、中間データ管理情報３９のデータ構造について説明した。
【００７５】
次に、同じく中間データ管理情報生成部３１にて生成される、論理座標情報（合成後）３８のデータ構造について説明する。
論理座標情報（合成後）３８のデータ構造を図２２に示す。論理座標情報（合成後）３８は、（１）登録数、（２）項目位置のｘ座標、（３）項目位置のｙ座標、を含む構造となっている。（１）〜（３）の各情報の詳しい説明は以下の通りである。
【００７６】
（１）登録数：中間データ（表）３６の＜１＞項目情報の数。中間データ（表）３６の＜３＞論理座標情報（合成前）の（１）登録数のコピーが格納される。
（２）項目位置のｘ座標：合成後の項目（文字列）の位置を示す座標（項目の最左最上の座標）のｘ座標。中間データ（表）３６の＜１＞項目情報に対応して登録数分格納される。
【００７７】
（３）項目位置のｙ座標：合成後の項目（文字列）の位置を示す座標（項目の最左最上の座標）のｙ座標。中間データ（表）３６の＜１＞項目情報に対応して登録数分格納される。  
【００７８】
上記（２）項目位置のｘ座標および（３）項目位置のｙ座標については、中間データ（表）３６の＜３＞論理座標情報（合成前）の項目位置を示す情報に、それぞれ各区画に対応した座標の補正情報を加算して生成される。補正情報は、中間データ管理情報３９の（３）配置属性、（４）配置方向、および（５）中間データ合成後の縦横サイズに基づいて、区画２、区画３、区画４についてそれぞれ求められる。１区画の横サイズをａ、縦サイズをｂとすると、図５（ｂ）のような４ＵＰの構成とすると、区画２、区画３、区画４の補正情報はそれぞれ、（ａ、０）、（０、ｂ）、（ａ、ｂ）となる。この補正情報を、＜３＞論理座標情報（合成前）の（１）項目位置のｘ座標、（２）項目位置のｙ座標にそれぞれ加算して、論理座標情報（合成後）３８が生成される。
【００７９】
図２３を参照して、論理座標情報（合成後）３８の算出方法について説明する。
図２３の上部に示すように、表１、表２、表３、表４をそれぞれ区画１、区画２、区画３、区画４に配置し、４ＵＰの合成を行うとする。表１には項目Ａ，項目Ｂが含まれ、表２には項目Ｅ、項目Ｆが含まれ、表３には項目Ｐ、項目Ｑが含まれ、表４には項目Ｘ、項目Ｙが含まれる。また、表を４ＵＰに合成する前のそれぞれの項目の論理座標情報のｘ座標を、図２３の下部に示す。すなわち、合成前のｘ座標はそれぞれ、項目Ａは８６４０、項目Ｂは１５８４０、項目Ｅは８６４０、項目Ｆは１４４０、項目Ｐは７２００、項目Ｑは２８８０、項目Ｘは２８８０、項目Ｙは１２９６０（以上、単位：１／１４４０インチ）である。
【００８０】
区画１および区画３の幅を２７３６０（単位：１／１４４０インチ）とすると、区画２、区画４に配置される表２および表４の論理座標情報のｘ座標に対する補正情報は２７３６０となる。この補正情報を表２および表４に含まれる項目の合成前の論理座標情報のｘ座標にそれぞれ加算して、合成後の論理座標情報を求める。すなわち、合成後の論理座標情報のｘ座標はそれぞれ、項目Ａは８６４０、項目Ｂは１５８４０、項目Ｅは３６０００、項目Ｆは２８８００、項目Ｐは７２００、項目Ｑは２８８０、項目Ｘは３０２４０、項目Ｙは４０３２０（以上、単位：１／１４４０インチ）となる。
【００８１】
論理座標情報（合成後）３８のｙ座標（論理座標情報（合成後）３８の（３）項目位置のｙ座標）についても、ｘ座標（論理座標情報（合成後）３８の（２）項目位置のｘ座標）と同様に求めることができる。
【００８２】
以上のように、図２２、図２３を参照して、中間データ管理情報生成部３１で生成される論理座標情報（合成後）３８のデータ構造について説明した。
次に、セル定義情報生成部３２にて用いられるセル制御情報４０のデータ構造について説明する。
【００８３】
セル制御情報４０は、生成するスプレッドシートのフォーマット定義を決定するために、ユーザ等によって予め設定される情報である。図２４に、セル制御情報４０のデータ構造を示す。セル制御情報４０は、（１）基本セル幅、（２）基本セル高さ、（３）丸め幅、（４）丸め高さ、を含む。（１）〜（４）の各情報の詳しい説明は以下の通りである。
【００８４】
（１）基本セル幅：生成するスプレッドシートのセル幅（列幅）を決定する際に基本となるセル幅の値。レイアウトを保証したまま、なるべく無駄なセルが生成されないように、帳票によってカスタマイズ可能。省略の場合は、「９６０（単位：１／１４４０インチ）」となる。
【００８５】
（２）基本セル高さ：生成するスプレッドシートのセル高さ（行高さ）を決定する際に基本となる値。レイアウトを保証したまま、なるべく無駄なセルが生成されないように、帳票によってカスタマイズ可能。省略の場合は、「２４０（単位：１／１４４０インチ）」となる。
【００８６】
（３）丸め幅：生成するスプレッドシートのセル幅を決定する際に、項目の微妙なｘ座標の違いにより無駄なセルを生成しないための値。項目の微妙なｘ座標の違いによる無駄なセル生成されないように、帳票によってカスタマイズ可能。省略の場合は、「144(単位：１／１４４０インチ)」となる。
【００８７】
（４）丸め高さ：生成するスプレッドシートのセル高さを決定する際に、項目の微妙なｙ座標の違いにより無駄なセルを生成しないための値。項目の微妙なｙ座標の違いによる無駄なセル生成されないように、帳票によってカスタマイズ可能。省略の場合は、「144(単位：１／１４４０インチ)」となる。
【００８８】
以上、図２４を参照してセル制御情報４０のデータ構造について説明した。ところで、セル定義情報生成部３２は、図２２で説明した論理座標情報（合成後）３８と図２４に示したセル制御情報４０とから、セル定義情報４１を生成する。セル定義情報４１は、生成するスプレッドシートのセル幅（列幅）、セル高さ（行高さ）を規定した、基本となるフォーマット定義である。そこで次に、図２５を参照してセル定義情報４１について説明する。
【００８９】
セル定義情報４１のデータ構造は、（１）基本セル幅、（２）基本セル高さ、（３）セル幅、（４）セル高さ、を含む。（１）〜（４）の各情報の詳しい説明は以下の通りである。
【００９０】
（１）基本セル幅：生成するスプレッドシートのセル幅（列幅）を決定する際に基本となるセル幅の値。セル制御情報４０の（１）基本セル幅のコピーが格納される。
（２）基本セル高さ：生成するスプレッドシートのセル高さ（行高さ）を決定する際に基本となるセル高さの値。セル制御情報４０の（２）基本セル高さのコピーが格納される。
【００９１】
（３）セル幅：論理座標情報（合成後）３８とセル制御情報４０とから算出される、生成するスプレッドシートのセル幅（列幅）の値が、カンマ区切りの形式で列数分、格納される。
【００９２】
（４）セル高さ：論理座標情報（合成後）３８とセル制御情報４０とから算出される、生成するスプレッドシートのセル高さ（行高さ）の値が、カンマ区切りの形式で行数分、格納される。
【００９３】
上記（３）セル幅の算出について、図２６、図２７を参照して説明する。まず、図２６に示すように、論理座標情報（合成後）３８を昇順にソートする。図２６は、図２５に示した論理座標情報（合成後）３８を昇順にソートしたものを示すものである。ソート後、論理座標情報は、項目Ｑ，項目Ｐ、項目Ａ，項目Ｂ，項目Ｆ，項目Ｘ，項目Ｅ，項目Ｙの順に並んでいる。ソート後の情報を用いて、生成するスプレッドシートのセル幅を算出していく。論理座標情報（合成後）３８のソート後の、生成するスプレッドシートのセル幅の算出は基本的には次の（ａ）〜（ｃ）により行われる。
【００９４】
（ａ）ソート後の論理座標情報（合成後）３８のうち、前後する論理座標情報の差を求めることにより、項目間の距離を算出する。
（ｂ）（ａ）で算出した項目間の距離が、セル制御情報４０の（３）丸め幅より小さい場合にはセル幅（列幅）を設定せず、（ａ）に戻り次の項目間の距離を算出する。
【００９５】
（ｃ）（ａ）で算出した項目間の距離が、セル制御情報４０の（３）丸め幅より大きい場合で、かつ、セル制御情報４０の（１）基本セル幅の２倍以上の場合には、基本セル幅でセル幅（列幅）を設定する。項目間の距離が、セル制御情報４０の（３）丸め幅より大きい場合で、かつ、項目間の距離が、セル制御情報４０の（１）基本セル幅の２倍未満の場合には、項目間の距離でセル幅（列幅）を設定する。そして、（ａ）に戻り次の項目間の距離を算出する。
【００９６】
（ａ）〜（ｃ）により、生成するスプレッドシートのフォーマット定義を決定することについて、図２７を参照して具体的に説明する。
基本概念は以下の通りである。
【００９７】
・（基本セル幅×２）以上の場合は、基本セル幅でセル幅（列幅）を設定する。
・（基本セル幅×）未満の場合は、項目間の距離をセル幅（列幅）として設定する。
図２７において、まず項目Ａ，項目Ｂ，項目Ｃ，項目Ｄについて論理座標情報（合成後）３８のｘ座標でソートすると、項目Ａ，項目Ｂ，項目Ｃ，項目Ｄの順になる。
【００９８】
一番最初の項目Ａについては、項目Ａのｘ座標の値を項目間の距離とする。項目間の距離は、丸め幅以上で、かつ、基本セル幅の２倍未満であるため、上記（ｃ）により項目間の距離をセル幅（列幅）として設定する。つまり、列Ａのセル幅が、スプレッドシートの左端から項目Ａの左端の距離に決定する。
【００９９】
次に、項目Ａと項目Ｂの項目間の距離を、論理座標情報（合成後）３８の差から算出する。項目Ａと項目Ｂの項目間の距離は、丸め幅以上で、かつ、基本セル幅の２倍未満であるため、上記（ｃ）により、列Ａと同様に、列Ｂのセル幅は、項目Ａと項目Ｂの項目間の距離で決定する。
【０１００】
次に、項目Ｂと項目Ｃの項目間の距離を、論理座標情報（合成後）３８の差から算出する。項目Ｂと項目Ｃの項目間の距離は、丸め幅以上で、かつ、基本セル幅の２倍以上であるため、列Ｃのセル幅を基本セル幅に決定する。更に、列Ｃの右端から項目Ｃの左端までの距離は、丸め幅以上で、かつ、基本セル幅の２倍未満であるため、列Ｄのセル幅を、列Ｃの右端から項目Ｃの左端までの距離に決定する。
【０１０１】
次に、項目Ｃと項目Ｄの項目間の距離を、論理座標情報（合成後）３８の差から算出する。項目Ｃと項目Ｄの距離は、丸め幅未満であるため、セル（列）は設定せず、次の項目間の距離の算出に処理を進める。これにより、項目Ｃと項目Ｄの距離のように短い距離に対応する列は設定されず、生成されるスプレッドシートのフォーマット定義には細かいセルが設定されるのを防ぐことができる。
【０１０２】
以下同様に項目間の距離を算出することにより、列Ｅ，列Ｆのセル幅（列幅）が決定される。また、セル幅の算出と同様に、行についてもセル高さ（行高さ）を決定することができる。以上のように、生成するスプレッドシートのフォーマット定義が決定される。そして、セル定義情報４１の（３）セル幅には、列Ａ，列Ｂ，列Ｃ，列Ｄ、列Ｅ，列Ｆの幅の値がそれぞれカンマで区切られて格納される。同様に、セル定義情報４１の（４）セル高さには、行１、行２、行３、行４、行５の高さの値がそれぞれカンマで区切られて格納される。
【０１０３】
以上のように、図２５〜図２７を参照してセル定義情報４１のデータ構造と、生成するスプレッドシートのフォーマット定義のセル幅セル高さの算出の方法について説明した。
次に、セル情報４２について説明する。上述したが、セル情報４２は、スプレッドシートの各セルに対応する情報で、中間データ合成部３３により生成される情報である。
【０１０４】
まず、中間データ合成部３３では、図２８に示すような、何行目かを示す情報ごとに、各行のセル情報を順に格納する記憶領域を確保する。この領域は、たとえば図２９における「行情報」に１行目の示す情報が格納され、該「行情報」の下層に１行目１列めのセル情報、１行目２列目のセル情報、・・・と順に並ぶ構成である。そして、中間データ合成部３３では、中間データ（表）３６の各項目情報について、対応する項目が配置されるセルを特定し、該セルに対応する図２８に示すセル情報格納領域にセル情報４２を格納する処理を行う。以下では、セル情報４２の構造について詳しく説明する。
【０１０５】
まず、図２８にセル情報４２のデータ構造を示す。セル情報は、それぞれ（１）データ、（２）書式、（３）フォント、（４）配置属性、（５）セル結合、（６）罫線、（７）網掛け、を含む。（１）〜（７）の各情報の詳しい説明は以下の通りである。
【０１０６】
（１）データ：セルのデータそのもの。中間データ（表）３６の＜１＞項目情報の（８）文字列データを、中間データ（表）３６の＜１＞項目情報の（２）データ形式に基づいて、必要に応じて変換したデータでが格納される。
【０１０７】
（２）書式：該当のセルの書式を指定する情報である。中間データ（表）３６の＜１＞項目情報の（７）編集形式に基づいて生成される、生成するスプレッドシートにおける該当セルの書式の情報が格納される。
【０１０８】
（３）フォント：フォント名やフォントサイズを示す情報。中間データ（表）３６の＜１＞項目情報の（６）フォント情報のコピーが格納される。
（４）配置属性：中央揃えなど文字の配置に関する情報。中間データ（表）３６の＜１＞項目情報の（５）配置情報のコピーが格納される。
【０１０９】
（５）セル結合：セルの結合範囲を示す情報である。セルの結合の方法等については、図２９を参照して後に説明する。
（６）罫線：該当セルの罫線について示す情報である。中間データ（表）３６の＜２＞罫線情報の（１）種別、（２）位置情報に基づいて、罫線の開始位置および終了位置の範囲を算出し、該範囲に該当セルが含まれる場合に、罫線についての情報が格納される
【０１１０】
（７）網掛け：該当セルの網掛けについて示す情報である。中間データ（表）３６の＜２＞罫線情報の（１）種別、（２）位置情報に基づいて、網掛けの開始位置および終了位置の範囲を算出し、該範囲に該当セルが含まれる場合に、網掛けについての情報が格納される。
【０１１１】
さて、上記（５）のセルの結合について図２９を参照して説明する。
図２９の（ｉ）に示す、表１と表２を２ＵＰ（Ａ４縦方向、区画１の下に区画２を配置する）で合成するとする。
【０１１２】
この場合に、中間データ生成部３０、中間データ管理情報生成部３１、セル定義情報生成部３２を経て、表１と表２の合成後のフォーマット定義、すなわち生成するスプレッドシートのセル幅、セル高さが（ｉｉ）のように決まる。
【０１１３】
そして中間データ合成部３３では、まず、この基本となる生成するスプレッドシートのフォーマット定義の上に、中間データ（表）３６の＜１＞項目情報の（１）項目位置から、＜１＞項目情報の（８）文字列データを配置する。すると、（ｉｉｉ）のようになる。ここで、例えば一番上の行の「家族情報」、「本人」の次の「配偶者」の項目については、「配偶者」の文字列が二列にまたがってしまっている。このことは、中間データ（表）３６の＜１＞項目情報の（１）項目位置と、中間データ（表）３６の＜１＞項目情報の（４）項目範囲と、セル定義情報４１から判断することができる。このように、セル定義情報４１で規定される、生成するスプレッドシートのフォーマット定義において、文字列が複数のセルにまたがって表示されてしまう場合に、項目範囲に基づいて、対応するセルを結合する。図２９の（ｉｖ）では、「配偶者」、「△□花子」、「１９５５/１０/１０」、「診療記録」、「年月日」、「病院名」、「支払額」、「１９８８/０８/０８」、「○×病院」、「￥１０，０００」の文字列に対応するセルがそれぞれ結合範囲と特定される。そして、図２９（ｖ）のようにセル結合が行われる。
【０１１４】
図２８の「セル情報４２の＜２＞セル情報（５）セル結合」では、上述のように結合されたセル範囲の情報が格納される。例えば、図２９の（ｉｖ）の「配偶者」の文字列は１行目３列と１行目４列のセルを結合するため、「（１，３）,（１，４）」などという情報が「セル情報４２の＜２＞セル情報（５）セル結合」に格納される。
【０１１５】
以上のように、図３に示した本実施形態のスプレッド生成システム１において、印刷データを入力とし、合成データであるセル情報４２が生成されるまでをデータ構造を参照して詳しく示した。このあと、本実施形態では、１枚のスプレッドシート上の全セル分のセル情報４２を、Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ（以下、ＸＭＬと略す）形式に変換し、ＸＭＬ形式データを更にスプレッドシート形式に変換してスプレッドシートを出力する。ＸＭＬ形式のデータおよびスプレッドシート形式のデータについては、後述する。
【０１１６】
以上、図３に示した本実施形態のスプレッドシート生成システム１における各データの構造について、図６〜図２９を参照して詳細に説明した。
以上のように、本実施形態のスプレッドシート生成システム１のシステム構造、該システムにより使用される、または、生成されるデータの構造について明らかとなった。そこで、以下、システムの動作フローについて詳しく説明する。
【０１１７】
図３０に本実施形態のスプレッドシート生成システム１の全体のシステムフローを示す。
まず、Ｓ３０１で、中間データ生成部３０は、フォーマット定義情報と印刷データ３５から表合成用の中間データ（表）３６を生成する。次に、Ｓ３０２で、中間データ管理情報生成部３１は、表合成制御情報３７と中間データ（表）３６から中間データ管理情報３９および論理座標情報（合成後）３８を生成する。次に、Ｓ３０３で、セル定義情報生成部３２は、論理座標情報（合成後）３８とセル制御情報４０とからセル定義情報４１を生成する。次に、Ｓ３０４で、中間データ合成部３３は、中間データ（表）３６と、中間データ管理情報３９と、セル定義情報４１とから、１枚のスプレッドシート上の全セル分のセル情報４２を含む合成データを生成する。そして、最後にＳ３０５で、スプレッドシート出力部３４は、合成データの各セル情報４２をそれぞれスプレッドシート形式のデータに変換して、スプレッドシートを生成する。
【０１１８】
Ｓ３０１については、図３１を参照して詳しく説明する。Ｓ３０２については、図３２を参照して詳しく説明する。Ｓ３０３については、図３３〜図３７を参照して詳しく説明する。Ｓ３０４については、図３８〜図４５を参照して詳しく説明する。Ｓ３０５については、図４６を参照して詳しく説明する。
【０１１９】
まず、図３１を参照して、Ｓ３０１の中間データ生成処理について説明する。
まず、Ｓ３１１で、フォーマット定義情報と印刷データ３５を読み込む。Ｓ３１２で、中間データ（表）３６を生成する。詳しくは、中間データ（表）３６の＜１＞項目情報（図１１）、＜２＞罫線情報（図１２）、＜３＞論理座標情報（合成前）（図１３）、＜４＞縦横サイズ（図１４）を生成する。
【０１２０】
中間データ（表）３６の＜１＞項目情報の各情報は次のように生成される。（１）項目位置は、フォーマット定義情報の＜１＞項目情報の（２）項目位置情報のコピーが格納される。（２）データ形式は、フォーマット定義情報の＜１＞項目情報の（５）データ形式のコピーが格納される。（３）データ長は、フォーマット定義情報の＜１＞項目情報の（４）データ長のコピーが格納される。（４）項目範囲は、フォーマット定義情報の＜１＞項目情報の（３）項目領域長から算出される。（５）配置情報は、フォーマット定義情報の＜１＞項目情報の（７）配置情報のコピーが格納される。（６）フォント情報は、フォーマット定義情報の＜１＞項目情報の（６）フォント情報のコピーが格納される。（７）編集形式は、フォーマット定義情報の＜１＞項目情報の（８）編集形式のコピーが格納される。（８）文字列データは、フォーマット定義情報の＜１＞項目情報の（９）レコード内位置が示す情報と（４）データ長に基づいて、印刷データのレコードを読み取り、取得した文字列データが格納される。
【０１２１】
また、中間データ（表）３６の＜２＞罫線情報の各情報は次のように生成される。（１）種別は、フォーマット定義情報の＜２＞罫線情報の（１）種別のコピーが格納される。（２）位置情報は、フォーマット定義情報の＜２＞罫線情報の（２）位置情報のコピーが格納される。
【０１２２】
また、中間データ（表）３６の＜３＞論理座標情報（合成前）の各情報は次のように生成される。（１）登録数は、＜１＞項目情報の数となる。（２）項目位置のｘ座標は、フォーマット定義情報の＜１＞項目情報の（２）項目の位置情報の座標情報のうちのｘ座標を、登録数分カンマで区切って格納されたものである。（２）項目位置のｙ座標は、フォーマット定義情報の＜１＞項目情報の（２）項目の位置情報の座標情報のうちのｙ座標を、登録数分カンマで区切って格納されたものである。
【０１２３】
また、中間データ（表）３６の＜４＞縦横サイズの各情報は次のように生成される。中間データ（表）３６に対応する表の縦サイズを、合成前の表において最右最下の位置にある項目の位置情報から算出し、（１）縦サイズに格納する。同様に、横サイズについても算出し、（２）横サイズに格納する。
【０１２４】
次に、Ｓ３１３で、生成した中間データへの参照情報（リンク）を一時記憶に保存しておく。
以上、図３０のＳ３０１について説明した。次に、図３０のＳ３０２について、図３２を参照して説明する。
【０１２５】
Ｓ３０２は、中間データ管理情報３９を生成する処理を行うが、まずＳ３２１で、表合成制御情報３７の各情報を、中間データ管理情報３９の対応する情報格納欄にコピーして格納する。図１５に示したように、表合成制御情報２７は、（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向、を含む構造となっている。これらの情報をコピーし、中間データ管理情報３９の（１）用紙サイズ種別、（２）用紙方向、（３）配置属性、（４）配置方向、（図１７参照）にそれぞれ格納する。次にＳ３２２で、各表の一番長い縦と横のサイズを特定する。中間データ（表）３６の＜４＞縦横サイズから、各表の一番長い縦と横のサイズを特定することができる。次にＳ３２３で、Ｓ３２１で表合成制御情報３７からコピーした、用紙サイズと用紙方向から、生成するスプレッドシートの縦サイズと横サイズの比率を算出する。
【０１２６】
次に、Ｓ３２４で、縦と横のサイズが収まる最少の１区画のサイズを算出する。そして、Ｓ３２５で、Ｓ３２１で表合成制御情報３７からコピーした、（３）配置属性から、２ＵＰ、４ＵＰで配置するかを特定し、生成するスプレッドシートの縦横サイズを算出する。表の合成を行わない場合には、１つの表の縦横サイズがそのまま生成するスプレッドシートの縦横サイズとなる。そして該算出した情報を、中間データ管理情報３９の（５）中間データの合成後の縦横サイズ、に格納する。尚、Ｓ３２２〜Ｓ３２５の処理は、図２０で説明した処理を行っている部分である。
【０１２７】
次にＳ３２６で、図３１のＳ３１３で一時保存しておいた中間データへの参照情報（リンク）を中間データ管理情報３９の（６）中間データへの参照情報に格納する。
その後、Ｓ３２７〜Ｓ３２９で、論理座標情報（合成後）３８を生成する処理を行う。
【０１２８】
Ｓ３２７で、Ｓ３２１でコピーした（３）配置属性により、２ＵＰか４ＵＰかを特定し、２ＵＰの場合には２区画数分、４ＵＰの場合には４区画数分、Ｓ３２８、Ｓ３２９の処理を行うように判断する。
【０１２９】
Ｓ３２８では、座標の補正情報について算出する。すなわち、Ｓ３２１でコピーした、（３）配置属性、（４）配置方向、および、Ｓ３２５で算出したスプレッドシートの縦横サイズに基づいて、区画２〜区画４の補正情報をそれぞれ算出する。そして、Ｓ３２９で、中間データ（表）３６の＜３＞論理座標情報（合成前）（図１３）に対応する区画の補正情報を加算し、論理座標情報（合成後）３８を生成する。Ｓ３２７〜Ｓ３２９の処理は図２３を参照して説明した通りである。
【０１３０】
次に、図３０のＳ３０３について、図３３〜３７を参照して説明する。
Ｓ３０３は、生成するスプレッドシートのフォーマット定義であるセル定義情報４１を生成する処理である。まず、Ｓ３３１とＳ３３２で、フォーマット定義のうち、セル幅（列幅）を算出する処理を行う。次にＳ３３３とＳ３３４で、フォーマット定義のうち、セル高さ（行高さ）を算出する処理を行う。セル幅を算出する処理とセル高さを算出する処理は同様な処理であるので、Ｓ３３１とＳ３３２について詳しく説明し、Ｓ３３３とＳ３３４については簡単に説明することにする。
【０１３１】
まず、Ｓ３３１において、論理座標情報（合成後）３８について、ｘ座標の値が格納されている、論理座標情報（合成後）３８の（２）項目位置のｘ座標の値をもとに昇順にソートする。次に、Ｓ３３２で、セル幅（列幅）の算出処理を行う。
【０１３２】
Ｓ３３２については、図３４に更に詳しいフローを示す。
Ｓ３４１で、処理フローを実行するための制御情報を初期化する。制御情報とは、フローを制御するための一時的な情報である。この制御情報は、どの列の列幅を算出しているかを示すための、列位置カウンタと、前回の項目位置を記憶するための情報、論理座標情報（合成後）３８に登録されている情報をいくつ処理したかをカウントする処理数カウンタ、の三つがある。以下、列位置カウンタを「制）列位置カウンタ」、前回の項目位置を「制）前回の項目位置」、処理数カウンタを「制）処理数カウンタ」と表記することにする。Ｓ３４１で、「制）列位置カウンタ」および「制）前回の項目位置」は０に初期化し、「制）処理数カウンタ」は１に初期化する。
【０１３３】
次に、Ｓ３４２で、「制）処理数カウンタ」の値が、論理座標情報（合成後）３８の（１）登録数に格納されている値以下であるか否かが判断される。Ｓ３４２でＮｏの場合Ｓ３４５に進む。Ｓ３４２でＹｅｓの場合、Ｓ３４３に進む。Ｓ３４３で、論理座標情報（合成後）３８の（２）項目位置のｘ座標、の値を取り出す。そしてＳ３４４に進む。
【０１３４】
Ｓ３４４では、セル幅（列幅）を決定する処理を行うが、より詳しく図３５を参照して説明する。
まず、Ｓ３５１で、項目間の距離を算出する。すなわち、Ｓ３４３で取り出したｘ座標の値と制御情報である「制）前回の項目位置」の差を求める。次にＳ３５２で、Ｓ３５１で求めた項目間の距離が、セル制御情報４０の（３）丸め幅より大きいか否かを判断する。Ｓ３５２でＮｏの場合には、Ｓ３５９に進む。Ｓ３５２でＹｅｓの場合には、Ｓ３５３に進む。Ｓ３５３では、Ｓ３５１で求めた項目間の距離が、セル制御情報４０の（１）基本セル幅の２倍以上であるか否かが判断される。Ｓ３５３でＮｏの場合にはＳ３５７に進む。Ｓ３５３でＹｅｓの場合にはＳ３５４に進む。
【０１３５】
Ｓ３５４では、「制）列位置カウンタ」が示す列のセル幅（列幅）を基本セル幅に決定する。そして、Ｓ３５５で「制）列位置カウンタ」を更新する。次に、Ｓ３５６に進み、項目間の距離を更新する。すなわち、項目間の距離から基本セル幅を減算し、求めた結果を項目間の距離とする。そして、Ｓ３５３に戻る。
【０１３６】
Ｓ３５３で、項目間の距離が基本セルの２倍未満であると判断された場合にＳ３５７に進む。Ｓ３５７では、「制）列位置カウンタ」が示す列のセル幅（列幅）を項目間の距離に決定する。そして、Ｓ３５８に進み、「制）前回の項目位置（Ｘ）」と「制）列位置カウンタ」を更新する。
【０１３７】
Ｓ３５２でＮｏと判断された場合、またはＳ３５８の後、Ｓ３５９に進み、Ｓ３５９では、「制）処理数カウンタ」を１インクリメントして、図３４の呼ばれたステップ（Ｓ３４４またはＳ３４６）に戻る。
【０１３８】
図３４の説明に戻る。Ｓ３４４の処理の後、Ｓ３４２に戻り、「制）処理数カウンタ」が論理座標情報の登録数以上となると、Ｓ３４２からＳ３４５に進む。
Ｓ３４５では、生成するスプレッドシートのサイズの右端を、項目位置として、ｘ座標の値を取り出す。Ｓ３４５およびＳ３４６は最終列のセル幅（列幅）を決定する処理である。Ｓ３４６では、Ｓ３４４と同一の処理を行う。以上の処理により、生成するスプレッドシートのすべての列のセル幅（列幅）が決定される。
【０１３９】
尚、以上に説明をした、図３４と図３５の処理を含む、図３３のＳ３３１およびＳ３３２の処理は、図２６、図２７を参照して説明した処理に対応する。
同様に、図３３のＳ３３３とＳ３３４の処理を行い、生成スプレッドシートのすべての行について、セル高さ（行高さ）を決定する。まず、Ｓ３３３で、論理座標情報（合成後）について、ｙ座標の値が格納されている、論理座標情報（合成後）３８の（２）項目位置のｙ座標の値をもとに昇順にソートする。次にＳ３３４でセル高さ（行高さ）の算出処理を行う。
【０１４０】
Ｓ３３４の詳しいフローを図３６に示す。図３６に示したフローは、図３４に示したフローと同一の流れであり、Ｓ３６１、Ｓ３６２，Ｓ３６３，Ｓ３６４，Ｓ３６５，Ｓ３６６の各ステップは、図３４のＳ３４１、Ｓ３４２，Ｓ３４３，Ｓ３４４，Ｓ３４５，Ｓ３４６にそれぞれ対応して同様の処理を行う。また特に、Ｓ３６３とＳ３６６の詳しいフローは図３７に示している。図３７に示したフローは、図３５に示したフローと同一の流れである。Ｓ３７１、Ｓ３７２，Ｓ３７３，Ｓ３７４，Ｓ３７５，Ｓ３７６、Ｓ３７７，Ｓ３７８、Ｓ３７９の各ステップは、Ｓ３５１、Ｓ３５２，Ｓ３５３，Ｓ３５４，Ｓ３５５，Ｓ３５６、Ｓ３５７，Ｓ３５８、Ｓ３５９にそれぞれ対応し、同様の処理を行う。
【０１４１】
以上のように、図３３〜図３７を参照して、図３０のＳ３０３の処理である、セル定義情報４１を生成する処理のフローについて詳しく説明した。
次に、図３０のＳ３０４の処理である中間データ合成処理について図３８〜図４５を参照して詳しく説明する。
【０１４２】
中間データ合成部３３では、Ｓ３０４の処理により、複数の中間データ（表）３６を、１枚のスプレッドシートに対応するデータにする処理を行う。
中間データ合成部３３は、図３８に示すように、まずＳ３８０で、カウンタを０に初期化する。次に、Ｓ３８１で、カウンタが中間データ（表）３６のデータ数未満か否かを判断する。すなわち、例えば２ＵＰの場合にはカウンタが２未満か否かを判断し、例えば４ＵＰの場合にはカウンタが４未満か否かを判断する。Ｓ３８１で、Ｎｏの場合、すべての中間データ（表）３６を処理したことになるため、処理を終了する。Ｓ３８１でＹｅｓの場合、Ｓ３８２に進む。
【０１４３】
Ｓ３８２では、中間データ（表）３６の＜１＞項目情報に含まれる（１）項目位置を補正するための情報を算出する。すなわち、中間データ管理情報３９の（３）配置属性、（４）配置方向、および（５）中間データの合成後の縦横サイズに基づいて、項目情報を配置する位置を補正する補正情報を算出する。
【０１４４】
次に、Ｓ３８３で、項目カウンタを０に初期化する。次にＳ３８４で、項目カウンタが中間データ（表）３６の項目情報の登録数以上である場合（項目情報の登録数は、中間データ（表）３６の＜３＞論理座標情報（合成前）の（１）登録数から得られる）、Ｓ３９１に進む。Ｓ３９１で、カウンタをインクリメントして、Ｓ３８１に戻る。Ｓ３８４で、項目カウンタが中間データの項目情報（表）３６の登録数未満である場合、Ｓ３８５に進む。Ｓ３８５では、Ｓ３８２で算出した補正情報を用いて、各項目の位置をスプレッドシート上のどのセルに配置されるかということを変換する処理を行う。そして次に、Ｓ３８６〜Ｓ３９０では、Ｓ３８５で特定されたセル位置に対し、セル情報４２の各種情報を生成し、図２８に示した情報格納領域に格納する処理を行う。
【０１４５】
すなわち、まずＳ３８６では、Ｓ３８５で算出されたセル位置に対応するセル情報４２の（１）データに（図２８のセル情報のデータ構造参照）、中間データ（表）３６の＜１＞項目情報の（８）文字列データを数値等に変換して格納する。同様に、Ｓ３８７では、Ｓ３８５で算出されたセル位置に対応するセル情報４２の（２）書式に、中間データ（表）３６の＜１＞項目情報の（７）編集形式に基づいて、生成するスプレッドシートの書式を生成して、格納する。Ｓ３８８では、Ｓ３８５で算出されたセル位置に対応するセル情報４２の（３）フォントおよび（４）配置属性にそれぞれ、中間データ（表）３６の＜１＞項目情報の（６）フォント情報、（５）配置情報をコピーして格納する。Ｓ３８９では、中間データ（表）３６の＜１＞項目情報の（１）項目位置と（４）項目範囲およびセル定義情報４１から、中間データ（表）３６の項目情報に対応する項目が占めるセル範囲を特定し、セル情報４２の（５）セル結合に格納する。Ｓ３９０では、中間データ（表）３６の＜２＞罫線情報に基づいて、罫線や網掛けの開始位置および終了位置を特定し、セル情報４２の（６）罫線または（７）網掛けに格納する。
【０１４６】
Ｓ３９０の後、Ｓ３９２に進み、項目カウンタを１インクリメントしてＳ３８４に戻る。以上、中間データ合成部３３で行われる、中間データを合成する処理について説明した。更に、Ｓ３８５，Ｓ３８６，Ｓ３８７，Ｓ３８８，Ｓ３８９，Ｓ３９０についてそれぞれより詳しいフローを示して説明する。
【０１４７】
まず、Ｓ３８５の、中間データ（表）３６の項目情報に対応する項目の位置をセル位置に変換する処理について、図３９と図４０を参照して説明する。
図３９のＳ３９３において、中間データ（表）３６の＜１＞項目情報の（１）項目位置とＳ３８２で算出した補正情報を元に、項目位置が何列目になるかを次の（ｉ）〜（ｉｉｉ）により算出する。
（ｉ）まず、変数ｔｍｐを０で初期化する。
（ｉｉ）ｔｍｐと補正情報で補正した項目の位置のｘ座標値を比較する。
（ｉｉｉ）ｔｍｐが補正情報で補正した項目位置のｘ座標値より小さい場合には、セル定義情報４１のセル幅（列幅）を加算し、（ｉｉ）に戻る。
（ｉｖ）ｔｍｐが補正情報で補正した項目位置のｘ座標値より大きい場合、すなわち、ｘ座標の値がｔｍｐより小さくなった時点の列を該項目が位置する列とする。
【０１４８】
つまり、（ｉ）〜（ｉｖ）では、項目位置がどのセルに含まれるか、セルの境界（図４０の△印）と項目位置を順番に比較しながら、項目位置がセルの境界値より小さくなった時点で列を特定する、という処理を行っている。
【０１４９】
（ｉ）〜（ｉｖ）により列を特定する例を図４０に示す。今、項目Ｃの列の特定をするとする。この場合に、項目Ｃの左端のｘ座標値は、列Ａ，列Ｂ，列Ｃのセル幅を順に加えていったものより大きい。しかし、列Ａ，列Ｂ，列Ｃ，列Ｄを加えたものと、項目Ｃの左端のｘ座標値を比較すると、ｘ座標値のほうが小さくなる。つまり、項目Ｃのｘ座標値は△４よりも小さい。そこで、列Ｄが項目Ｃのセル位置となることが特定される。
【０１５０】
同様に、Ｓ３９４で、項目位置が何行目になるかを算出する。すなわち、次の（Ｉ）〜（ＩＶ）により算出する。
（Ｉ）まず、変数ｔｍｐを０で初期化する。
（ＩＩ）ｔｍｐと補正情報で補正した項目の位置のｙ座標値を比較する。
（ＩＩＩ）ｔｍｐが補正情報で補正した項目の位置のｙ座標値より小さい場合には、セル定義情報４１のセル高さ（行高さ）を加算し、（ＩＩ）に戻る。
（ＩＶ）ｔｍｐが補正情報で補正した項目の位置のｙ座標値より大きい場合、すなわち、ｙ座標の値がｔｍｐより小さくなった時点の行を該項目が位置する行とする。
【０１５１】
Ｓ３９３およびＳ３９４の後、Ｓ３９５にて、算出したセル位置（行、列）を一時記憶に記憶する。
以上、図３９、図４０を参照して、Ｓ３８５の処理について説明した。
【０１５２】
次に、セル情報４２にデータを設定する処理である、Ｓ３８６の処理について、図４１を参照して説明する。まず、Ｓ４１１で、中間データ（表）３６の＜１＞項目情報の（８）文字列データから、文字列データを取り出す。次にＳ４１２で、中間データ（表）３６の＜１＞項目情報の（２）データ形式が日付項目、または、時刻項目か否かを判断する。Ｓ４１２でＹｅｓの場合Ｓ４１３に進む。Ｓ４１２でＮｏの場合Ｓ４１４に進む。Ｓ４１３では、文字列データをシリアル値に変換する。そして、Ｓ４１６に進む。
【０１５３】
Ｓ４１２でＮｏの場合、Ｓ４１４に進み、中間データ（表）３６の＜１＞項目情報の（２）データ形式が数字項目か否かを判断する。Ｓ４１４でＹｅｓの場合Ｓ４１５に進む。Ｓ４１４でＮｏの場合、Ｓ４１６に進む。Ｓ４１５では、文字列データを数値文字列に変換する。このとき、符号の有無、全体桁数、小数点桁数などを考慮する。そしてＳ４１６に進む。
【０１５４】
Ｓ４１６では、Ｓ４１３で変換された値、またはＳ４１６で変換された値、または、変換処理されなかった文字列データを、Ｓ３８５（Ｓ３９５）で算出されたセル位置に対応するセル情報４２の（１）データに格納する。
【０１５５】
以上、図４１を参照して、Ｓ３８６の処理について説明した。次に、セル情報４２に書式を設定する処理である、Ｓ３８７の処理について、図４２を参照して説明する。まず、Ｓ４２１で、中間データ（表）３６の＜１＞項目情報の（７）編集形式が数値編集か否かを判断する。Ｓ４２１でＹｅｓならＳ４２２に進む。Ｓ４２１でＮｏならＳ４２３に進む。Ｓ４２２で、数値編集に対するスプレッドシートの書式を生成する。これは例えば、図８に示した表において、項目情報における編集形式が「９９９９９９９」の場合、スプレッドシートの書式として「００００００；００００００」を生成することをいう。そしてＳ４２２の後、Ｓ４２８に進む。
【０１５６】
Ｓ４２１でＮｏの場合、Ｓ４２３に進み、中間データ（表）３６の＜１＞項目情報の（７）編集形式が日付、時刻編集か否かを判断する。Ｓ４２３でＹｅｓなら、Ｓ４２４に進む。Ｓ４２３でＮｏならＳ４２５に進む。Ｓ４２４で、日付、時刻編集に対するスプレッドシートの書式を生成する。そして、Ｓ４２４の後、Ｓ４２８に進む。
【０１５７】
Ｓ４２３でＮｏの場合、Ｓ４２５に進み、中間データ（表）３６の＜１＞項目情報の（７）編集形式が郵便番号編集か否かを判断する。Ｓ４２５でＹｅｓならＳ４２６に進む。Ｓ４２５でＮｏならＳ４２７に進む。Ｓ４２６で、郵便番号編集に対するスプレッドシートの書式を生成する。そして、Ｓ４２６の後、Ｓ４２８に進む。
【０１５８】
Ｓ４２５でＮｏの場合、Ｓ４２７に進み、文字列データを示す書式を生成する。そして、Ｓ４２８に進む。
Ｓ４２８では、Ｓ４２２またはＳ４２４またはＳ４２６またはＳ４２７で生成したスプレッドシートの書式を、Ｓ３８５（Ｓ３９５）で算出されたセル位置に対応するセル情報４２の（２）書式に格納する。
【０１５９】
以上、図４２を参照して、Ｓ３８７の処理について説明した。次に、セル情報４２にフォント、配置属性を設定する処理であるＳ３８８の処理について図４３を参照して説明する。まず、Ｓ４３１で、中間データ（表）３６の＜１＞項目情報の（６）フォント情報を読み出し、Ｓ３８５（Ｓ３９５）で算出されたセル位置に対応するセル情報４２の（３）フォントに格納する。次に、Ｓ４３２で、中間データ（表）３６の＜１＞項目情報の（５）配置情報を読み出し、Ｓ３８５（Ｓ３９５）で算出されたセル位置に対応するセル情報４２の（４）配置属性に格納する。
【０１６０】
以上、図４３を参照して、Ｓ３８８の処理について説明した。次に、セル結合の設定を行う処理であるＳ３８９の処理について図４４を参照して説明する。まずＳ４４１で、中間データ（表）３６の＜１＞項目情報の（１）項目位置をＳ３８２で算出した補正情報で補正した項目位置と、中間データ（表）３６の＜１＞項目情報の（４）項目範囲とから、セル定義情報４１を参照し、項目が占める範囲と対応するセルの範囲を特定する。次に、Ｓ４４２で、Ｓ４４１で特定したセル範囲をセルの結合範囲として、セル情報４２の（５）セル結合に格納する。
以上、図４４を参照して、Ｓ３８９の処理について説明した。
【０１６１】
次に、罫線、網掛けの設定をする処理であるＳ３９０の処理について図４５を参照して説明する。まず、Ｓ４５１で、中間データ（表）３６の＜２＞罫線情報の（１）種別が罫線か否かを判断する。Ｓ４５１でＹｅｓならば、Ｓ４５２に進む。Ｓ４５１でＮｏならば、Ｓ４５３に進む。
【０１６２】
Ｓ４５２では、中間データ（表）３６の＜２＞罫線情報の（２）位置情報から、セル定義情報４１を参照し、罫線の開始位置（Ｘ１，Ｙ１）および罫線の終了位置（Ｘ２，Ｙ２）がどの列、行に含まれるか特定する。そして、Ｓ４５５に進む。
【０１６３】
Ｓ４５３では、中間データ（表）３６の＜２＞罫線情報の（１）の種別が網掛けか否かを判断する。Ｓ４５３でＮｏなら処理を終了する。Ｓ４５３でＹｅｓなら、Ｓ４５４に進む。Ｓ４５４では、網掛け範囲の四隅の座標である、左上（Ｘ１，Ｙ１），左下（Ｘ１，Ｙ２）,右上（Ｘ２、Ｙ１），右下（Ｘ２，Ｙ２）がどの列、行に含まれるか特定する。そして、Ｓ４５５に進む。
【０１６４】
Ｓ４５５では、Ｓ４５２またはＳ４５４で特定したセル範囲を罫線または網掛け範囲として、セル情報４２の（６）罫線または（７）網掛けにそれぞれ格納する。
以上のように、図３８〜図４５を参照して、図３０のＳ３０４の処理である、中間データ（表）３６を合成する処理について詳しく説明した。
【０１６５】
次に、図３０のＳ３０５の処理であるスプレッドシート生成処理について図４６を参照して詳しく説明する。
まず、Ｓ４６０でセル情報４２をポイントするポインタを初期化する。これにより、合成された表の１行１列目のセルの情報を格納したセル情報４２をポイントすることになる。
【０１６６】
次に、Ｓ４６１で、ポインタがポイントするところにセル情報があるか否かを判断する。セル情報がなければ、Ｓ４６８に進む。セル情報があれば、Ｓ４６２に進む。
Ｓ４６２〜Ｓ４６６では、セル情報４２が含む（１）データ、（２）書式、（３）フォント、（４）配置属性、（５）セル結合、（６）罫線、（７）網掛けの情報をそれぞれＸＭＬ形式に変換する処理を行う。すなわち、Ｓ４６２では、セル情報４２の（１）データをＸＭＬ形式で出力する。次にＳ４６３では、セル情報４２の（２）書式をＸＭＬ形式で出力する。次にＳ４６４では、セル情報４２の（３）フォントおよび（４）配置属性をＸＭＬ形式で出力する。Ｓ４６５では、セル情報４２の（６）セル結合をＸＭＬ形式で出力する。Ｓ４６６では、セル情報４２の（６）罫線および（７）網掛けをＸＭＬ形式で出力する。
【０１６７】
そして、Ｓ４６６の後、Ｓ４６７でポインタを更新し、次のセル情報をポイントするようにしてＳ４６１に戻る。
以上のＳ４６０〜Ｓ４６７の処理により、すべてのセル情報がＸＭＬ形式に変換される。そして、この後、Ｓ４６８ではＸＭＬ形式で記載された表のデータを、スプレッドシートに変換する。Ｓ４６８のＸＭＬ形式の表データをスプレッドシートに変換する処理は、既存のツール等を用いる。
【０１６８】
また、Ｓ４６０〜Ｓ４６７で生成されるＸＭＬ形式のデータは、Ｓ４６８で用いるツールにもよるが、概念的には例えば図４７に示すようなデータとなる。ＸＭＬは、構造化言語と呼ばれる言語で、タグを用いてドキュメントデータの内容を区別することが可能であるため、セル情報４２の各情報を、タグを用いて区別した形式となっている。
【０１６９】
以上、図４６を参照してＳ３０５について説明した。図３０のＳ３０５によりスプレッドシートが生成され、本実施形態のスプレッドシート生成システム１からスプレッドシートが出力され、処理が完了することなる。
【０１７０】
以上、本実施形態について図１〜図４７を参照して詳細に説明した。
上述のように、本実施形態では、まず複数の表に対応する印刷データをそれぞれ変換し、複数の中間データを生成する。そして、該複数の中間データを合成し、１枚のスプレッドシートの全セル分のセル情報を含む合成データを生成する。更に、該合成データでの各セル情報をスプレッドシート形式に変換してスプレッドシートを生成する。このように本実施形態では、中間データを利用することにより、複数の表に対応する印刷データを１枚のスプレッドシートに出力することを可能とした。また、中間データを合成する際に、それぞれの表のレイアウトが崩れないようにする処理や無駄なセルが生成されないようにする処理を行うことにより、スプレッドシート生成後に手作業によるセルやレイアウトの調整が不要である。つまり、図４８に示すように、二つの表、表１および表２を２ＵＰで合成する場合に、それぞれの表のレイアウトを維持しつつ、かつ、細かい無駄なセルが生成されないようにスプレッドシートを生成することができる。これにより、本実施形態によれば、ユーザ等の作業効率を上げることができ、また印刷データの二次利用性を高めることができる、といえる。
【０１７１】
尚、本発明は上記実施の形態に記載したことに限定されないことは言うまでもなく、本発明の趣旨を逸脱しない範囲において様々な変更が可能である。
【０１７２】
図１から図４８までを参照して説明した実施形態に関し、更に以下の付記を開示する。
（付記１）
情報処理装置に、
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成する、中間データ生成ステップと、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正する、合成後位置情報生成ステップと、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定する、フォーマット定義決定ステップと、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力する、合成ステップと、
前記合成データの各セル情報をそれぞれスプレッドシート形式のデータに変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータとして、スプレッドシートを出力する、スプレッドシート出力ステップと、
を実行させることを特徴とするスプレッドシート生成プログラム。
（付記２）
前記セル制御情報は、基本セル幅、基本セル高さ、丸めセル幅、丸めセル高さを含む情報であって、
前記フォーマット定義決定ステップは、
まず、前記各項目の合成後の位置情報におけるｘ座標について該各項目をソートし、該ソートした項目について順にｘ座標値の差を求めることで項目間の距離を求め、該項目間の距離が、前記丸めセル幅未満である場合にはフォーマット定義における列を設定せず、該項目間の距離が該丸めセル幅以上でかつ前記基本セル幅の２倍以上である場合には、該基本セル幅で該フォーマット定義における列を設定し、該項目間の距離が該丸め幅以上でかつ該基本セル幅の２倍未満である場合には該項目間の距離で該フォーマット定義における列を設定し、前記ｘ座標についてソートした全項目を処理した後、
前記各項目の合成後の位置情報におけるｙ座標について該各項目をソートし、該ソートした項目について順にｙ座標値の差を求めることで項目間の距離を求め、該項目間の距離が前記丸めセル高さ未満である場合にはフォーマット定義における行を設定せず、該項目間の距離が該丸め高さ以上でかつ前記基本セル高さの２倍以上である場合には該基本セル高さで該フォーマット定義における行を設定し、該項目間の距離が該丸め高さ以上でかつ該基本セル高さの２倍未満である場合には該項目間の距離で該フォーマット定義における行を設定し、前記ｙ座標についてソートした全項目を処理し、
前記出力するスプレッドシートのフォーマット定義を決定する、ことを特徴とする付記１記載のスプレッドシート生成プログラム。
（付記３）
前記項目に関する情報は、該項目の範囲を示す情報を含み、
前記合成ステップにおいて、前記各項目の合成後の位置情報と、前記項目の範囲を示す情報と、に基づいて、該項目が前記フォーマット定義に基づいたスプレッドシート上の複数のセルにまたがって配置されると判断された場合に、前記セル情報が更に備えるセル結合に関する情報を格納する領域に、該当するセル範囲を結合することを示す情報を記録することを特徴とする付記１または２記載のスプレッドシート生成プログラム。
（付記４）
前記項目に関する情報とは、該項目のデータと、該データのデータ長と、該項目の範囲と、該項目のフォント情報と、該項目の配置情報と、該項目の編集方式と、を含むことを特徴とする付記１乃至付記３いずれか一項に記載のスプレッドシート生成プログラム。
（付記５）
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成する、中間データ生成手段と、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正する、合成後位置情報生成手段と、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定する、フォーマット定義決定手段と、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力する、合成手段と、
前記合成データの各セル情報をそれぞれスプレッドシート形式に変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータにして、スプレッドシートを出力する、スプレッドシート出力手段と、
を備えることを特徴とするスプレッドシート生成装置。
（付記６）
情報処理装置が、
複数の表に対応する印刷データから、該各表に含まれる複数の項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成し、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正し、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定し、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力し、
前記合成データの各セル情報をそれぞれスプレッドシート形式に変換し、前記スプレッドシートの全セル分のセル情報をスプレッドシート形式のデータとして、スプレッドシートを出力する、
ことを特徴とするスプレッドシート生成方法。
（付記７）
情報処理装置が、
複数の表に対応する印刷データから、該各表に含まれる各項目の該表中の位置情報を全項目分含む中間データを、該各表に対応して複数生成し、
前記複数の中間データについて、該中間データが含む各項目の前記位置情報を、表合成用の制御情報に基づいて、合成後の位置情報にそれぞれ補正し、
前記中間データが含む前記各項目の合成後の位置情報と、基本となるセルサイズを規定したセル制御情報と、に基づいて前記複数の表を合成して出力するスプレッドシートのフォーマット定義を決定し、
前記各項目の合成後の位置情報に基づいて、該各項目が、前記フォーマット定義に基づいたスプレッドシート上のどのセルに配置されるかを示すセル位置情報を算出し、該セル位置情報に対応するセルに配置される項目に関する情報を格納したセル情報を生成し、該スプレッドシートの全セル分の該セル情報を合成データとして出力し、該合成データを保持する、
ことを特徴とする印刷データ処理方法。
【符号の説明】
【０１７３】
１      スプレッドシート生成システム
２      中間データ生成装置
３      中間データ合成装置
４      スプレッドシート出力装置
５      印刷データ
６      フォーマット定義情報
７      スプレッドシート
８      業務アプリケーション
９      帳票定義ツール
１０      ＣＰＵ
１１      ＲＯＭ
１２      ＲＡＭ
１３      通信インターフェイス
１４      入力装置
１５      出力装置
１６      記憶装置
１７      駆動装置
１８      バス
１９      可搬型記憶媒体
２０      ネットワーク
２１      プログラム提供者
２２      情報処理装置
３０      中間データ生成部
３１      中間データ管理情報生成部
３２      セル定義情報生成部
３３      中間データ合成部
３４      スプレッドシート出力部
３５      フォーマット定義情報と印刷データ
３６      中間データ（表）
３７      表合成制御情報
３８      論理座標情報（合成後）
３９      中間データ管理情報
４０      セル制御情報
４１      セル定義情報
４２      セル情報
４３      スプレッドシート
【図１】
2011198296.tif 000003
【図２】
2011198296.tif 000004
【図３】
2011198296.tif 000005
【図４】
2011198296.tif 000006
【図５】
2011198296.tif 000007
【図６】
2011198296.tif 000008
【図７】
2011198296.tif 000009
【図８】
2011198296.tif 000010
【図９】
2011198296.tif 000011
【図１０】
2011198296.tif 000012
【図１１】
2011198296.tif 000013
【図１２】
2011198296.tif 000014
【図１３】
2011198296.tif 000015
【図１４】
2011198296.tif 000016
【図１５】
2011198296.tif 000017
【図１６】
2011198296.tif 000018
【図１７】
2011198296.tif 000019
【図１８】
2011198296.tif 000020
【図１９】
2011198296.tif 000021
【図２０】
2011198296.tif 000022
【図２１】
2011198296.tif 000023
【図２２】
2011198296.tif 000024
【図２３】
2011198296.tif 000025
【図２４】
2011198296.tif 000026
【図２５】
2011198296.tif 000027
【図２６】
2011198296.tif 000028
【図２７】
2011198296.tif 000029
【図２８】
2011198296.tif 000030
【図２９】
2011198296.tif 000031
【図３０】
2011198296.tif 000032
【図３１】
2011198296.tif 000033
【図３２】
2011198296.tif 000034
【図３３】
2011198296.tif 000035
【図３４】
2011198296.tif 000036
【図３５】
2011198296.tif 000037
【図３６】
2011198296.tif 000038
【図３７】
2011198296.tif 000039
【図３８】
2011198296.tif 000040
【図３９】
2011198296.tif 000041
【図４０】
2011198296.tif 000042
【図４１】
2011198296.tif 000043
【図４２】
2011198296.tif 000044
【図４３】
2011198296.tif 000045
【図４４】
2011198296.tif 000046
【図４５】
2011198296.tif 000047
【図４６】
2011198296.tif 000048
【図４７】
2011198296.tif 000049
【図４８】
2011198296.tif 000050
【図４９】
2011198296.tif 000051
【図５０】
2011198296.tif 000052