説明

スプレッドシート生成プログラム,スプレッドシート生成装置,およびスプレッドシート生成方法

【課題】 オーバレイ帳票の出力結果のレイアウト情報を保持した二次活用可能なデータを生成する技術を提供することを目的とする。
【解決手段】 セル定義情報生成処理部11は,フォーマット定義情報31とオーバレイ定義情報33から,それぞれ,帳票およびオーバレイの項目の配置を示す列幅および行高を定めるフォーマット・セル定義情報21,オーバレイ・セル定義情報23を生成する。セル出力部151は,生成した2つのセル定義情報21,23の列幅および行高をそれぞれマージし,項目とオーバレイとのレイアウト位置に対応するセルの列幅および行高を計算し,計算した列幅および行高を設定し,項目またはオーバレイに対応するセルを特定したスプレッドシート41を生成・出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,オーバレイ出力処理される帳票のスプレッドシートデータを自動生成するスプレッドシート生成プログラム,スプレッドシート生成装置,およびスプレッドシート生成方法に関する。
【背景技術】
【0002】
帳票の出力結果は,帳票のフォーマット定義情報に基づいて構成される項目と各項目へ入力される入力データとを含む帳票データに,オーバレイ定義情報に基づいて構成された枠,罫線,マークなどのオーバレイの要素とが重畳されて出力される。
【0003】
帳票の印刷結果から,帳票の項目への入力データを,集計やグラフ作成等に二次活用する場合には,帳票の印刷結果から入力データのみを抽出しなければならない。
【0004】
しかし,帳票の印刷結果を電子化した場合に,電子化した印刷結果データでは入力データとオーバレイのデータとが区別されないため,印刷結果データから入力データのみを抽出することはできなかった。
【0005】
そのため,帳票の入力データを再利用する場合には,従来では,帳票の印刷結果を電子化して利用せずに,帳票の入力データをデータベースから取得する業務アプリケーション等を作成しておき,この業務アプリケーションを介して入力データを取得していた。
【0006】
また,印刷処理において,帳票の入力データとオーバレイのデータとをそのまま重畳させると,帳票上で両者の位置のずれ,不整合などの相違が発生することがある。入力データとオーバレイのデータとの位置が相違する帳票の印刷結果を電子化した場合には,電子化した印刷結果データは,そのままでは,ディスプレイ表示,データ入力用のフォーマットとして再利用などが行えず,再利用のためには何らかの加工処理や修正処理が必要であった。
【0007】
なお,帳票の項目への入力データが不定量なものである場合に,帳票定義情報で定義された帳票の入力データの矩形領域の大きさを変更したり,入力データの文字ピッチ,行ピッチなどを変更したりして,帳票を適切な体裁で印刷する処理が知られている。
【特許文献1】特開2004−355077号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
情報資源として帳票を有効活用するために,帳票の情報を既存の業務アプリケーション,例えば表計算ソフトで使用できるスプレッドシートデータに変換する処理が,強く望まれていた。特に,オーバレイ出力処理される帳票から,印刷結果のイメージをできる限り維持しつつ入力データの二次活用が容易なデータを自動的に生成する処理は,従来実現されていなかった。
【0009】
本発明の目的は,オーバレイ出力処理される帳票について,帳票の印刷結果のイメージを維持しつつ,入力データや印刷結果のレイアウトを容易に二次活用できるようなスプレッドシートデータを自動生成する処理技術,すなわち,コンピュータを前記スプレッドシートデータの生成処理を行う処理手段として機能させるためのプログラム,前記スプレッドシートデータの自動生成処理を実行する装置,コンピュータが実行する前記スプレッドシートの生成方法を,提供することである。
【課題を解決するための手段】
【0010】
上記の目的を達成するために,本発明の一態様として開示するスプレッドシート生成プログラムは,コンピュータを,フォーマット定義情報取得処理手段,オーバレイ定義情報取得処理手段,セル定義情報生成処理手段,およびスプレッドシート出力処理手段として機能させるものである。
【0011】
開示するプログラムがインストールされて実行されるコンピュータでは,フォーマット定義情報取得処理手段が,帳票を構成する項目群の帳票内のレイアウト位置に関するフォーマット定義情報を取得する。また,オーバレイ定義情報取得処理手段が,前記帳票に重畳して出力されるオーバレイ群の帳票内のレイアウト位置に関するオーバレイ定義情報を取得する。
【0012】
そして,セル定義情報生成処理手段は,フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定し,決定した列幅および行高に関するフォーマット・セル定義情報を生成する。
【0013】
すると,スプレッドシート出力処理手段は,オーバレイ定義情報に基づいて,オーバレイのレイアウト位置に対応する列幅および行高を決定し,さらに,フォーマット・セル定義情報の項目群の列幅および行高ならびに前記決定したオーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高,ならびに当該列幅と行高とのセル配列における項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成する。
【0014】
開示するプログラムによれば,コンピュータを,帳票の項目や項目と出力時にオーバレイされる部品とのレイアウト位置を維持したセル配列を持つスプレッドシートを自動生成する処理手段として機能させることができる。そして,出力されたスプレッドシート形式のデータによって,帳票の出力結果のレイアウトの再利用,帳票の入力データの再利用等が可能となる。
【発明の効果】
【0015】
開示するスプレッドシート生成処理によって,オーバレイ出力される帳票のフォーマット定義情報とオーバレイ定義情報とに基づいて,帳票の出力時の項目とオーバレイとのレイアウトに関する情報を含むスプレッドシートデータを自動生成することができる。
【0016】
生成されるスプレッドシートデータでは,項目およびオーバレイのレイアウトの情報に基づいてセル配列が設定される。そのためスプレッドシートデータの項目に対応するセルから,入力データだけを二次利用しやすい形式(例えばCSV形式,XML形式等)で抽出することが可能になる。
【0017】
また,帳票の印刷結果のイメージを定めるオーバレイ定義情報を,二次利用しやすいスプレッドシートデータとして抽出することが可能になる。
【0018】
よって,帳票への入力情報,帳票の出力体裁情報の再利用がより容易となり,帳票の再利用性,流通性が高まるという効果を奏する。
【発明を実施するための最良の形態】
【0019】
以下,本発明の実施の形態を説明する。
【0020】
図1は,本発明の一実施例として開示するスプレッドシート生成装置1の構成例を示す図である。
【0021】
スプレッドシート生成装置1は,既存の帳票定義作成ツール(GUI)から出力されるフォーマット定義情報31およびオーバレイ定義情報33を取得し,帳票の印刷結果を構成する項目およびオーバレイのレイアウト位置をセル単位の行列で特定するスプレッドシート41を生成・出力する。また,スプレッドシート生成装置1は,業務アプリケーションから出力される入力データ群35を取得し,帳票の項目に対応するセルに入力データを与えてスプレッドシート41を出力する。
【0022】
図2は,本発明の一実施例における帳票の印刷結果例を示す図である。
【0023】
図2の帳票の印刷結果は,項目群(項目A〜項目D)とオーバレイ(枠,罫線)とを含むように構成されている。項目(項目A〜項目D)の属性,出力態様,レイアウト位置等はフォーマット定義情報31に定義されている。重畳して印刷出力されるオーバレイの枠,罫線の出力態様,レイアウト位置等は,オーバレイ定義情報33に定義されている。
【0024】
フォーマット定義情報31は,帳票を構成する項目群の帳票内のレイアウト位置に関する情報である。
【0025】
図3に,本発明の一実施例におけるフォーマット定義情報31のデータ構成例を示す。
【0026】
フォーマット定義情報31は,帳票形式情報として,帳票を構成するパーティションごとに,パーティション内の項目に関する項目情報および罫線情報を有する。
【0027】
図4に,フォーマット定義情報31の項目情報のデータ構成例を示す。
【0028】
項目情報は,項目の属性を定義する情報であり,項目名,項目位置情報,項目領域長,データ長,データ形式,フォント情報,配置情報,編集形式,レコード内位置等の情報を含む。
【0029】
項目名は,項目を識別するための,フォーマット定義情報31内で一意の文字列である。項目位置情報は,図2に示す帳票の左下を原点とするXY座標系における座標値である。座標値は,1/1440インチ単位の値が与えられる。項目領域長は,項目の領域のX座標軸方向(例えば,横方向)の長さである。
【0030】
データ長は,項目に与えられる入力データの長さ(バイト単位)である。入力データは,文字列または数値である。
【0031】
データ形式は,項目に与えられる入力データの種別(文字列,数値)である。フォント情報は,入力データの印刷時のフォント名,フォントサイズを示す情報である。
【0032】
配置情報は,入力データの印刷時の配置(右寄せ,中央,左寄せ等)を示す情報である。編集形式は,入力データの印刷時の表示形式である。予め設定された対応関係に従って,編集形式から,スプレッドシート41の項目に対応するセルの表示形式(書式)が設定される。レコード内位置は,項目に与えられる入力データの,入力データ群35のレコード内での位置である。レコード内位置は,レコードの先頭からのバイト数で示される。
【0033】
図5に,フォーマット定義情報31の項目情報の編集形式とスプレッドシート41の書式との対応関係の定義例を示す。
【0034】
対応関係の定義に関する情報は,スプレッドシート出力部15に予め備えられ,スプレッドシート41の生成時に参照される。
【0035】
図5の対応関係では,スプレッドシート41が,マイクロソフト社の表計算ソフトウェア「EXCEL」用データである場合の表示形式(セル書式)との対応の例である。フォーマット定義情報31の項目情報の「データ形式」と「編集形式」との設定値によって,スプレッドシート41のセルの書式が特定される。
【0036】
例えば,項目の「データ形式」が“文字列”,かつ「編集形式」が“なし”である場合には,この項目に対応付けられたセルの書式は“@”となる。また,項目の「データ形式」が“数値”かつ「編集形式」が“9999999”である場合には,この項目に対応付けられたセルの「書式」は“000000;000000”となる。
【0037】
図6は,フォーマット定義情報31の項目情報のレコード内位置と,各項目に与えられる入力データとの関係を説明するための図である。
【0038】
フォーマット定義情報31の項目情報の「項目位置情報」によって,図6の上部に示すように,帳票の各項目が,“項目A,項目AA,…”の順序で配置されているとする。この場合に,「項目A」,「項目AA」,…の各項目への入力データが“あいうえお”,“12345”,…であるとすると,印刷結果では,各項目に与えられる入力データは,“あいうえお,12345,…”の順序で印刷されることになる。
【0039】
図7に,フォーマット定義情報31の罫線情報のデータ構成例を示す。
【0040】
罫線情報は,項目の出力態様(罫線,枠,網掛け等)を定義する情報であって,種別,位置情報を含む。
【0041】
種別は,罫線/枠/網掛けを識別する情報である。位置情報は,罫線/枠/網掛けの位置または範囲を示す座標値であって,開始座標値(X1,Y1)と終了座標値(X2,Y2)が設定される。罫線情報の種別が,“枠”または“網掛け”の場合に,開始座標値は項目の矩形領域の左上座標であり,終了位置は,矩形の右下座標である。
【0042】
オーバレイ定義情報33は,帳票に重畳して出力される枠,罫線,マークなどの要素であるオーバレイ群の帳票内のレイアウト位置に関する情報である。
【0043】
図8に,本発明の一実施例におけるオーバレイ定義情報33のデータ構成例を示す。
【0044】
オーバレイ定義情報33は,文字列情報,罫線情報,枠情報,網掛け情報等の情報を含む。
【0045】
図9に,オーバレイ定義情報33の文字列情報のデータ構成例を示す。
【0046】
文字列情報は,位置情報,文字列範囲,データ長,フォント情報,配置情報,文字列データを含む。
【0047】
位置情報は,図2に示す帳票の左下を原点とするXY座標系における座標値である。座標値は,1/1440インチ単位の値が与えられる。文字列範囲は,オーバレイの文字列の範囲を示す座標値であり,矩形の左上座標である開始座標値(X1,Y1)と矩形の右下座標である終了座標値(X2,Y2)が設定される。データ長は,オーバレイが文字列である場合の文字列の長さを示す値(バイト単位)である。
【0048】
フォント情報は,オーバレイの文字列のフォント名,フォントサイズを示す情報である。配置情報は,オーバレイの文字列範囲内における文字列の配置(右寄せ,中央,左寄せ等)を示す情報である。文字列データは,オーバレイである文字列データが格納される。
【0049】
図10に,オーバレイ定義情報33の罫線情報のデータ構成例を示す。
【0050】
罫線情報は,線種,位置情報を含む。
【0051】
線種は,罫線の種類(実線,点線,太線等)を識別する情報である。位置情報は,罫線の位置を示す座標値(1/1440インチ単位)である。開始位置(x1,y1)と終了位置(x2,y2)とが設定される。
【0052】
図11に,オーバレイ定義情報33の枠情報のデータ構成例を示す。
【0053】
枠情報は,線種,位置情報を含む。
【0054】
線種は,罫線の種類(実線,点線,太線等)を識別する情報である。位置情報は,枠の位置または範囲を示す座標値である。枠線の矩形の左上の座標値である開始位置(X1,Y1)と,枠線の矩形の右下の座標値である終了位置(X2,Y2)とが設定される。
【0055】
図12に,オーバレイ定義情報33の網掛け情報のデータ構成例を示す。
【0056】
網掛け情報は,網掛けパターン,位置情報を含む。
【0057】
網掛けパターンは,網掛けパターンの種別または濃度を識別する情報である。位置情報は,網掛けの位置や範囲を示す座標値である。枠線の矩形の左上の座標値である開始位置(X1,Y1)と,枠線の矩形の右下の座標値である終了位置(X2,Y2)とが設定される。
【0058】
入力データ群35は,帳票の項目群に与えられる,文字/文字列,数値等のデータの集合に相当するデータである。
【0059】
図1に示すスプレッドシート生成装置1は,セル定義情報生成処理部11,モード指定部13,スプレッドシート出力部15を有する。
【0060】
スプレッドシート出力部15は,さらに,セル出力部151,オートシェイプ出力部152を有する。
【0061】
セル定義情報生成処理部11は,フォーマット定義情報31を取得し,予め保持するセル制御情報19に基づいて,フォーマット定義情報31から,帳票の項目群のレイアウト位置に対応する列幅および行高を持つセルの設定に関するフォーマット・セル定義情報21を生成する。
【0062】
また,セル定義情報生成処理部11は,オーバレイ定義情報33を取得し,セル制御情報19に基づいて,オーバレイ定義情報33から,帳票のオーバレイのレイアウト位置に対応する列幅および行高を持つセルの設定に関するオーバレイ・セル定義情報23を生成する。
【0063】
図13に,セル制御情報19のデータ構成例を示す。
【0064】
セル制御情報19は,セルの列幅/行高を決定する処理の制御に関する情報である。セル制御情報19は,基本セル幅,基本セル高,丸め幅,丸め高さを有し,帳票ごとに任意に値を設定することができる。
【0065】
基本セル幅は,出力するスプレッドシート41の基本セルのセル幅(列幅)を示す値(1/1440インチ単位)である。基本セル幅の初期値は,960/1440インチとする。基本セル高は,スプレッドシート41の基本セルのセル高さ(行高)を示す値(1/1440インチ単位)である。基本セル高の初期値は,240/1440インチとする。
【0066】
丸め幅は,項目の列方向の位置(X軸方向の座標値)を調整するかを判定するための情報である。丸め幅の値(1/1440インチ単位)の初期値は,144/1440インチとする。丸め高さは,項目の位置(Y軸方向の座標値)を調整するかを判定するための情報である。丸め高さの値(1/1440インチ単位)の初期値は,144/1440インチとする。
【0067】
セル定義情報生成処理部11は,フォーマット定義情報31の項目群の列方向の座標値(X1)を昇順にソートし,ソート結果から,昇順の順位が1つ上の項目との間の列方向の距離に基づいて列幅を決定する。さらに,セル定義情報生成処理部11は,フォーマット定義情報31の項目群の行方向の座標値(Y1)を昇順にソートし,ソート結果から,昇順の順位が1つ上の項目との間の行方向の距離に基づいて行高を決定する。
【0068】
また,セル定義情報生成処理部11は,オーバレイ定義情報33のオーバレイ群の列方向の座標値(X1)および行方向(Y1)を昇順にソートし,ソート結果から,昇順の順位が1つ上のオーバレイとの間の列方向の距離に基づいて列幅を決定する。さらに,昇順の順位が1つ上のオーバレイとの間の行方向の距離に基づいて行高を決定する。
【0069】
さらに,セル定義情報生成処理部11は,セル制御情報19の丸め幅/丸め高さを参照して,項目同士の距離が,丸め幅/丸め高さ以内であれば,座標原点に近い方(ソート結果の昇順の順位が1つ上の一方)の項目のX座標値/Y座標値に,他方の項目のX座標値/Y座標値を一致させる。
【0070】
微少な位置ずれが生じている項目同士の位置を揃えることによって,無駄なセルが生成されることを防止している。
【0071】
図14に,フォーマット定義情報31に基づく列幅および行高の決定例を示す。
【0072】
図2に示す帳票の印刷結果の場合に,セル定義情報生成処理部11は,フォーマット定義情報31の項目A〜項目Dのレイアウト位置から,列幅と行高とを決定する。
【0073】
本実施例では,セル制御情報19の基本セル幅,基本セル高をもとに,2つの部品間の距離が「基本セル幅/行高×2」以上である場合は,基本セル幅/基本セル高で区切って2つの列/行とし,列幅/行高を決定する。
【0074】
セル定義情報生成処理部11は,フォーマット定義情報31の各項目の開始位置(X1,Y1)を,左上を原点とするXY座標系における座標値に変換する。変換した位置(座標値)をもとに項目A〜項目Dを昇順にソートする。
【0075】
項目Aの座標値Xf1と原点座標Xとの距離を計算し,求めた距離を列Aの列幅Wとする。同様に,項目Aの座標値Xf1と項目Bの座標値Xf2との距離を計算し,求めた距離を列Bの列幅Wとする。
【0076】
次に,項目Bの座標値Xf2と項目Cの座標値Xf4との距離を求める。この距離が「基本列幅W×2」以上であるので,基本列幅Wを列Cの列幅Wとして,項目Bの座標値Xf2に基本列幅Wsを加算して座標値Xf3を求める。
【0077】
さらに,座標値Xf3と項目Cの座標値Xf4との間の距離は,「基本列幅W×2」未満であるので,その距離を列Dの列幅Wとする。
【0078】
項目Cの座標値Xf4から帳票の右端の座標値Xまでの距離が「基本列幅Ws×2」以上であるとする。基本列幅Wを列Eの列幅Wとし,項目Cの座標値Xf4に基本列幅Wを加算して座標値座標値Xf5を求める。
【0079】
ここで,項目Cの座標値Xf4と項目Dの座標値Xfdとの距離が,セル制御情報19の丸め幅以内とする。項目Dの座標値Xfdを座標値Xf4に一致させる。
【0080】
項目C,項目Dの座標値Xf5と帳票の右端の座標値Xまでの距離を「基本列幅W×2」未満であるとする。その距離を列Fの列幅Wとする。
【0081】
セル定義情報生成処理部11は,列幅の決定の処理と同様の処理を行って,変換した位置(座標値)の昇順の順位が1つ上の項目との間の行方向の距離に基づいて,行高(行1〜行5)を決定する。
【0082】
さらに,セル定義情報生成処理部11は,フォーマット定義情報31に基づいて決定した列幅(列A〜列F)および行高(行1〜行5)を持つセル行列において,フォーマット定義情報31の項目の位置情報から,項目に対応するセルを特定して対応付けを行う。
【0083】
そして,セル定義情報生成処理部11は,図14に示すように決定した列幅および行高の情報とセルと項目との対応付けとを含むフォーマット・セル定義情報21を生成する。
【0084】
図15に,オーバレイ定義情報33に基づく列幅および行高の決定例を示す。
【0085】
セル定義情報生成処理部11は,図2に示す帳票の印刷結果の場合に,オーバレイ定義情報33のオーバレイ(枠,罫線)の開始位置(X1,Y1)と終了位置(X2,Y2)の座標値を,左上を原点とするXY座標系における座標値に変換する。
【0086】
セル定義情報生成処理部11は,変換した座標値を列方向および行方向それぞれで昇順にソートし,ソート結果において,順位が1つ上の座標値との距離を求め,求めた列方向の距離を列幅,行方向の距離を行高として決定する。
【0087】
セル定義情報生成処理部11は,オーバレイの枠の開始位置の座標値XO1と原点座標Xとの距離を計算し,列Aの列幅WOaとする。同様に,座標値XO1と枠内の縦罫線の開始位置の座標値XO2との距離を計算し,列Bの列幅WObとする。
【0088】
同様に,座標値XO2と枠内の終了位置の座標値XO3との距離を計算し,列Cの列幅Wocとする。さらに,座標値XO3と帳票の右端の座標値Xとの距離を計算し,列Dの列幅WOdとする。
【0089】
さらに,セル定義情報生成処理部11は,枠の開始位置の座標値YO1と原点座標Yとの距離を計算し,行1の行高HO1とする。座標値YO1と枠内の上部の横罫線の座標値Y02との距離から行2の行高HO2を,座標値YO2と枠内の下部の横罫線の座標値Y03との距離から行3の行高HO3を,座標値YO3と枠の終了位置の座標値Y04との距離から行4の行高HO4を,座標値YO4と帳票の下端の位置の座標値Yとの距離から行5の行高HO5を,それぞれ計算する。
【0090】
さらに,セル定義情報生成処理部11は,オーバレイ定義情報33に基づいて決定した列幅(列A〜列D)と行高(行1〜行5)を持つセル行列において,オーバレイ定義情報33のオーバレイの位置情報から,オーバレイに対応するセルを特定して対応付けを行う。
【0091】
そして,セル定義情報生成処理部11は,図15に示すように決定した列幅および行高の情報とセルとオーバレイとの対応付けとを含むオーバレイ・セル定義情報23とを生成する。
【0092】
図16は,フォーマット・セル定義情報21とオーバレイ・セル定義情報23のレイアウト位置に関する情報のデータ構成例を示す図である。
【0093】
フォーマット・セル定義情報21とオーバレイ・セル定義情報23とは,それぞれ,基本セル幅,基本セル高,セル幅(列数分),セル高(行数分)を有する。
【0094】
基本セル幅,基本セル高には,セル定義情報の生成時に参照したセル制御情報19の基本セル幅,基本セル高が設定される。
【0095】
セル幅には,セル定義情報生成処理部11が決定した列数分の列幅の値が,座標原点から昇順に,カンマ区切りの形式で設定される。セル高には,セル幅と同様に,セル定義情報生成処理部11が決定した行数分の行高の値が,座標原点から昇順に,カンマ区切りの形式で設定される。
【0096】
なお,セル定義情報生成処理部11が実行するフォーマット定義情報31,オーバレイ定義情報33からセル定義情報を生成する処理についての詳細処理の説明は,本願出願人の先の特許出願「特願2007−863017号」に記載している。
【0097】
モード指定部13は,スプレッドシート出力部15が実行する処理内容を指定する。モード指定部13は,予め「レイアウト重視モード,データ重視モード,最適化モード,オートシェイプモード」を設定して,ユーザによるモード設定操作等の外部入力されたモードを指定する。また,モード指定部13は,モード指定の外部入力がない場合に,所定のモード,例えば「最適化モード」を指定する。
【0098】
「レイアウト重視モード」は,帳票の出力結果と同じレイアウトを保持するために,帳票の項目群の位置とオーバレイ群の位置とを全て用いて列幅と行高とを決定するモードである。「データ重視モード」は,入力データの再利用を容易にするために,項目の列幅/行高の位置を優先して列幅と行高とを決定するモードである。
【0099】
「最適化モード」は,帳票の出力結果と同じレイアウトを維持しつつ,セルの生成を必要最小限に抑えるために,項目群の位置とオーバレイ群の位置と調整して,列幅と行高とを決定するモードである。「オートシェイプモード」は,帳票の出力結果のレイアウトを維持しつつ,オーバレイの再利用を容易にするために,項目群の位置をもとに列幅と行高とを決定し,オーバレイ群をスプレッドシート41に描画される図形要素として生成するモードである。
【0100】
スプレッドシート出力部15のセル出力部151は,モード指定部13が指定したモードに従って,フォーマット定義情報31とオーバレイ定義情報33とのレイアウト位置に基づいて決定された列幅および行高の情報をもとに,スプレッドシート41を生成,出力する。また,セル出力部151は,入力データ群35を取得して,項目と対応するセルに入力データを与えたスプレッドシート41を生成,出力する。
【0101】
スプレッドシート41は,マイクロソフト社のエクセル(EXCEL)と呼ばれる表計算アプリケーションプログラムで処理可能なデータである。
【0102】
または,スプレッドシート41は,図17に示すように,それぞれがXML形式である文書データ,入力データ,属性データ,オートシェイプデータを含む複数のデータファイル群からなるOOXML(Office Open XML)形式のエクセルデータであってもよい。この場合に,OOXML形式のスプレッドシート41は,ZIP形式による圧縮が施されている。
【0103】
以下に,指定されたモードでのセル出力部151の処理を説明する。
【0104】
(1)レイアウト重視モードの処理
セル出力部151は,モード指定部13によって「レイアウト重視モード」が指定された場合に,フォーマット・セル定義情報21の列幅および行高の情報(項目群のレイアウト位置)と,オーバレイ・セル定義情報23の列幅および行高の情報(オーバレイ群のレイアウト位置)とを用いて,列幅および行高を決定し,出力用セル定義情報25に登録する。出力用セル定義情報25は,指定されたモードの処理によって決定したセル幅(列幅)およびセル高(行高)を保持する情報である。
【0105】
レイアウト重視モードの処理で生成されたスプレッドシート41は,全ての座標値がセルの区切りとなるために細かいセルを多数含むが,項目に重なるオーバレイが存在しないため,帳票の通常の印刷結果のレイアウトをそのまま維持したものとなる。よって,帳票の印刷結果のレイアウトを維持したスプレッドシート41を,そのままデータ入力画面として利用することができる。
【0106】
図18に,レイアウト重視モードの処理におけるスプレッドシート41のセル配列例を示す。
【0107】
セル出力部151は,フォーマット・セル定義情報21のセル幅(W,W,…)の情報から,各セルの区切り(列方向のセル境界)を示す座標値を計算する。フォーマット・セル定義情報21のセル幅から,セルの区切りとして座標値「(X),Xf1,Xf2,Xf3,Xf4,Xf5,(X)」が求まる。
【0108】
セル出力部151は,同様に,オーバレイ・セル定義情報23のセル幅の情報(Woa,Wob,…)から,各セルの区切り(列方向のセル境界)を示す座標値を計算する。オーバレイ・セル定義情報23のセル幅から,セルの区切りとして座標値「(X),Xo1,Xo2,Xo3,(X)」が求まる。
【0109】
次に,セル出力部151は,これらの座標値をマージし,マージ後の座標値を昇順にソートする。図18に示すように,「(X),Xo1,Xf1,Xf2,Xf3,Xo2,Xf4,Xf5,Xo3,(X)」となる。
【0110】
セル出力部151は,マージ後の座標値を列幅の区切りとして採用し,各列(列A〜列I)の列幅を出力用セル定義情報25に登録する。
【0111】
さらに,セル出力部151は,行高についても,列幅と同様の処理を行う。セル出力部151は,フォーマット・セル定義情報21のセル高(H,H,…)から,各セルの区切り(行方向のセル境界)を示す座標値「(Y),Yf1,Yf2,Yf3,Yf4,(Y)」を計算する。さらに,オーバレイ・セル定義情報23のセル高(Ho1,Ho2,…)から各セルの区切りを示す座標値「(Y),Yo1,Yo2,Yo3,Yo4,(Y)」を計算する。
【0112】
次に,セル出力部151は,求めた座標値をマージし,昇順にソートする。マージ後の座標値の並びは,図18に示すように,「(Y),Yo1,Yf1,Yo2,Yf2,Yo3,Yf3,Yf4,Yo4,(Y)」となる。
【0113】
そして,セル出力部151は,マージ後の座標値を行高の区切りとして採用し,各行(R1〜R9)の行高を決定し,出力用セル定義情報25に登録する。
【0114】
セル出力部151は,出力用セル定義情報25のセル幅(列幅)とセル高(行高)に基づいてセルの列幅と行高とを設定したスプレッドシート41を生成する。そして,フォーマット・セル定義情報21に基づいて,帳票の各項目に対応するスプレッドシート41のセルの範囲を特定する。さらに,セル出力部151は,フォーマット定義情報31の対応する項目の項目情報,罫線情報等に基づいて,特定した範囲のセルに対して表示形式の情報(セル書式)を登録する。
【0115】
さらに,セル出力部151は,オーバレイ・セル定義情報23に基づいて,オーバレイの枠や罫線に対応するスプレッドシート41のセルの範囲を特定する。さらに,オーバレイ定義情報33の対応するオーバレイの罫線情報等に基づいて,特定した範囲のセルに対してセル書式を登録する。
【0116】
(2) データ重視モードの処理
セル出力部151は,モード指定部13によってデータ重視モードが指定された場合に,フォーマット・セル定義情報21の列幅および行高の情報を用いて列幅および行高を決定し,出力用セル定義情報25に登録する。
【0117】
そして,セル出力部151は,オーバレイのレイアウト位置を,出力用セル定義情報25の列幅および行高のセル配列にマッピングする。
【0118】
データ重視モードの処理によって生成されたスプレッドシート41では,オーバレイのレイアウト位置が変更されるため,印刷結果のレイアウトが維持されない可能性がある。しかし,項目群のレイアウト位置に基づいてセルが生成されるため,無駄なセルが少ない。よって,表計算ソフトのマクロ機能によってプログラミングする場合や,スプレッドシート41をCSV形式のデータに変換する場合に,帳票の項目に与えられた入力データの抽出が容易になり,入力データの二次活用が容易になる。
【0119】
図19に,データ重視モードの処理におけるスプレッドシート41のセル配列例を示す。
【0120】
セル出力部151は,フォーマット・セル定義情報21のセル幅およびセル高の情報を出力用セル定義情報25に登録する。そして,出力用セル定義情報25の列幅および行高を設定したスプレッドシート41を生成する。
【0121】
次に,セル出力部151は,フォーマット・セル定義情報21に基づいて,帳票の各項目に対応するスプレッドシート41のセルの範囲を特定し,特定した範囲のセルに対して,フォーマット定義情報31の対応する項目の項目情報,罫線情報等に基づいて,セル書式)を登録する。
【0122】
次に,セル出力部151は,オーバレイ定義情報33を得て,各オーバレイについて,オーバレイの開始位置(X1,Y1)/終了位置(X2,Y2)の座標値が,どの列幅(原点から何番目の列)または行高(原点から何番目の行)に含まれるかを特定し,特定した列幅/行高に基づいて,オーバレイの開始位置/終了位置を,セルの区切りを示す座標値にマッピングする。
【0123】
例えば,セル出力部151は,セルの列幅/行高の中間点を基準にして,中間点より座標原点に近い側であれば,原点側に近い(左側)セルとの区切りの位置にマッピングし,中間点より座標原点に遠い側であれば,次のセル(右側)との区切りの位置にマッピングする。
【0124】
図19において,オーバレイの枠の開始位置(X1,Y1)の座標値X1>座標XAm(Xf1とXとの距離の中間点)とすると,座標X1を座標Xf1にマッピングする。さらに,開始位置の座標値Y1<座標Y1m(Yf1とYとの距離の中間点)とすると,座標Y1を座標Yにマッピングする。したがって,枠に開始位置は,座標(Xf1,Y)となる。
【0125】
また,オーバレイの枠の終了位置の座標値X2>座標XFm(Xf5とXとの距離の中間点)とすると,座標X2を座標Xにマッピングする。終了位置の座標値Y2>座標Y4m(Yf4とYとの距離の中間点)とすると,座標Y1を座標Yにマッピングする。したがって,枠に終了位置は,座標(X,Y)となる。
【0126】
さらに,セル出力部151は,オーバレイのマッピング後の位置に基づいてオーバレイに対応するセルの範囲を特定し,特定した範囲のセルに対して,オーバレイ定義情報33の対応するオーバレイの罫線情報等に基づいてセル書式を登録する。
【0127】
(3) 最適化重視モードの処理
セル出力部151は,モード指定部13によって最適化モードが指定された場合に,フォーマット・セル定義情報21の列幅の情報と,オーバレイ・セル定義情報23の列幅の情報とに基づいて,項目とオーバレイとの位置が近い場合に最適な位置を選択して列幅を最適化し,最適化した列幅を出力用セル定義情報25に登録する。また,行高についても,列幅と同様の処理によって最適化する。
【0128】
セル出力部151は,フォーマット・セル定義情報21の列幅および行高の情報と,オーバレイ・セル定義情報23の列幅および行高の情報とをそれぞれマージし,列方向/行方向で隣り合う項目の位置(X1/Y1)とオーバレイの位置(X1/Y1)について,座標原点に遠い位置を,座標原点により近い位置に置き換え,置き換えた位置に基づいて列幅/行高を決定し,出力用セル定義情報25に登録する。
【0129】
また,セル出力部151は,フォーマット・セル定義情報21において,1つの項目について,基本セルのセル幅(列幅),セル高(行高)を用いた2以上の列幅/行高が設定されている場合に,基本セルのセル幅(列幅),セル高(行高)の区切りを除外して,列幅/行高を決定し,出力用セル定義情報25に登録する。
【0130】
最適化モードの処理によって生成されたスプレッドシート41は,帳票の項目の位置とオーバレイの位置とが隣り合う場合に,座標原点に近い側に開始位置を重ねてレイアウトするため,印刷結果のレイアウトを概ね維持しつつ,無駄なセルの生成を抑制するという,レイアウト重視モードとデータ重視モードの利点を備えるものとなる。
【0131】
さらに,このスプレッドシート41では,帳票の項目とオーバレイとの位置を基本として列幅/行高が決定され,セルが生成されるため,無駄なセルが少なく表計算ソフトでの処理との適合性がよいものとなる。
【0132】
また,スプレッドシート41内に項目に対応しない列幅/行高の区切りが排除されるため,よりセル数が少ないものとなる。
【0133】
図20に,最適化モードの処理におけるスプレッドシート41のセル配列例を示す。
【0134】
セル出力部151は,フォーマット・セル定義情報21のセル幅の情報から,各セルの区切り(列方向のセル境界)を示す座標値を計算する。同様に,オーバレイ・セル定義情報23のセル幅の情報から,各セルの区切り(列方向のセル境界)を示す座標値を計算する。
【0135】
セル出力部151は,計算した座標値をマージし,座標値を昇順にソートする。ソート結果において,列方向の位置について,項目とオーバレイとの位置が隣り合うペアを特定し,座標原点に遠い位置を,座標原点に近い位置にマッピングする。
【0136】
マージおよびソートしたX座標値の並びが「(X),Xo1,Xf1,Xf2,Xf3,Xo2,Xf4,Xf5,Xo3,(X)」であるとする。
【0137】
図20に示すように,項目Aの開始位置の座標値Xf1とオーバレイ(枠)の開始位置の座標値Xo1が隣り合い,Xo1<Xf1であるので,より遠い項目Aの座標値Xf1を,オーバレイ(枠)の座標値Xo1にマッピングし,項目Aの座標値Xf1を除外する。セル出力部151は,行方向についても,同様の処理を行い,より遠い項目Aの座標値Yf1を,オーバレイ(枠)の座標値Yo1にマッピングし,項目Aの座標値Yf1を除外する。この除外によって,座標値Xo1と座標値Xf2を区切りとする列幅と,座標値Yo1と座標値Yo2とを区切りとする行高を決定する。
【0138】
セル出力151は,座標値Xf1と座標値Xf2については,いずれも項目(項目A,項目B)に基づいて決定された列の区切りであるので,これらの座標値をそのまま採用する。
【0139】
さらに,セル出力部151は,列Dと列Eとの区切りである座標値Xf3が,基本セルの設定によるものであるので,座標値Xf3を除外する。
【0140】
セル出力部151は,同様にして,項目C,項目Dの位置(座標値Xf4)についても,オーバレイ(枠内縦罫線)の位置(座標値Xo2)にマッピングする。
【0141】
セル出力部151は,行方向についても同様の処理を行う。
【0142】
次に,セル出力部151は,マッピングによって決定した列幅と行高を出力用セル定義情報25に登録する。そして,出力用セル定義情報25の列幅および行列を設定したスプレッドシート41を生成する。
【0143】
そして,セル出力部151は,フォーマット・セル定義情報21に基づいて,帳票の各項目に対応するスプレッドシート41のセルの範囲を特定し,特定した範囲のセルに対して,フォーマット定義情報31に基づいてセル書式を登録する。
【0144】
さらに,セル出力部151は,オーバレイ・セル定義情報23に基づいて,オーバレイに対応するセルの範囲を特定し,特定した範囲のセルに対して,オーバレイ定義情報33の対応するオーバレイの罫線情報等に基づいてセル書式を登録する。
【0145】
(4) オートシェイプモードの処理
セル出力部151は,モード指定部13によってオートシェイプモードが指定された場合に,フォーマット・セル定義情報21のセル幅とセル高の情報を出力用セル定義情報25に登録する。そして,出力用セル定義情報25の列幅および行高を設定したスプレッドシート41を生成する。
【0146】
さらに,出力部151は,フォーマット・セル定義情報21に基づいて,帳票の各項目に対応するスプレッドシート41のセルの範囲を特定し,特定した範囲のセルに対して,フォーマット定義情報31に基づいてセル書式を登録する。
【0147】
オートシェイプ出力部152は,オーバレイ定義情報33を得て,各オーバレイの情報に基づいて,オーバレイをスプレッドシート41に描画される図形要素に変換する。図形要素とは,表計算ソフト「EXCEL」のオートシェイプと呼ばれる図形データである。
【0148】
オートシェイプモードの処理によって生成されたスプレッドシート41では,オーバレイはセル定義情報に依存しないため,帳票の印刷結果におけるレイアウトがそのまま維持される。
【0149】
また,スプレッドシート41のセル配列は,フォーマット・セル定義情報21のみを用いて設定されるため,無駄なセルが少なく,入力データ群の抽出も容易となり,入力データの二次活用も容易となる。
【0150】
図21に,オートシェイプモードの処理におけるスプレッドシート41のセル配列例を示す。
【0151】
図21に示すように,スプレッドシート41のセル配列は,データ重視モードの処理の場合と同様に,フォーマット・セル定義情報21の列幅および行高の情報を用いて設定される。オーバレイの要素として,オーバレイ定義情報33に基づいて図形データが生成され,スプレッドシート41上に重畳して出力される。
【0152】
セル出力部151は,以上説明した4つのモードの処理において,入力データ群35を取得し,生成したスプレッドシート41の項目に対して,該当する入力データを与えたスプレッドシート41を出力することができる。
【0153】
セル出力部151は,図17に示すように,OOXML形式の複数のデータファイルの集合であり,文書データ,入力データ,属性データ,オートシェイプ(図形データ)がそれぞれ別ファイルとして構成される。
【0154】
したがって,図22に示すように,複数のデータファイルで構成されたスプレッドシート41から,入力データ(XMLデータファイル)43のみを抽出することができる。
【0155】
さらに,オートシェイプモードの処理によって,オーバレイが図形データとして生成されている場合には,オートシェイプ(XMLデータファイル)45のみを抽出することができる。表計算ソフトにおいて,帳票のオーバレイ定義情報33を二次利用することが可能となり,オーバレイの流通性を向上させることができる。
【0156】
一例として,ある帳票が,図23(A)に示すように,帳票の枠線,背景色,項目の見出し文字列等が,オーバレイの要素としてオーバレイ定義情報33に定義され,図23(B)に示すように,帳票の項目がフォーマット定義情報31に定義され,入力データ群35が帳票に与えられ,図23(C)に示すような出力結果となると仮定する。
【0157】
このような構成の帳票から生成されたスプレッドシート41では,スプレッドシートの項目に対応するセルから,入力データを抽出する処理が,より容易になる。さらに,スプレッドシート41をそのまま表示させて,データ入力画面として使用することが可能となる。
【0158】
次に,一実施例におけるスプレッドシート生成装置1の処理の流れを説明する。
【0159】
図24は,スプレッドシート生成装置1の概要処理の処理フロー例を示す図である。
【0160】
スプレッドシート生成装置1のセル定義情報生成処理部11は,フォーマット定義情報31に基づくセル定義情報の生成処理を行い(ステップS1),続いて,オーバレイ定義情報33に基づくセル定義情報の生成処理を行う(ステップS2)。
【0161】
スプレッドシート出力部15は,指定されたモードによる出力用セル定義情報生成処理を行う(ステップS3)。
【0162】
続いて,スプレッドシート出力部15は,ステップS3で生成した出力用セル定義情報25に基づいて,オーバレイの定義をスプレッドシート41へ反映させるオーバレイ出力処理を行い(ステップS4),さらに,項目の定義をスプレッドシート41へ反映させるフォーマット出力処理を行う(ステップS5)。
【0163】
オーバレイ出力処理およびフォーマット出力処理は,生成したスプレッドシート41を,マイクロソフト社の表計算ソフト「EXCEL」へ出力する処理とする。
【0164】
図25は,ステップS1のセル定義情報の生成処理のより詳細な処理フロー図である。
【0165】
セル定義情報生成処理部11は,フォーマット定義情報31を取得し,各項目の項目情報を,列方向(X軸方向)の項目位置(X座標値)をもとに昇順にソートする(ステップS10)。続いて,セル定義情報生成処理部11は,昇順にソートされた項目情報から,列幅の算出処理を行う(ステップS11)。
【0166】
次に,セル定義情報生成処理部11は,フォーマット定義情報31の項目情報を,行方向(Y軸方向)の項目位置(Y座標値)をもとに昇順にソートする(ステップS12)。セル定義情報生成処理部11は,昇順にソートされた項目情報から,行高の算出処理を行う(ステップS13)。
【0167】
ステップS10およびステップS12の処理において,フォーマット定義情報31の項目位置が,左上を原点とするXY座標系でない場合には,ソート前に,項目位置を,左上を原点とするXY座標系における位置(座標値)に変換する。例えば,左下原点の座標系の項目位置の場合,ステップS12の処理において,項目位置のY座標値を,「左上の項目位置Y1=左下の項目位置Y1−項目の高さH1」の式を用いて換算する。
【0168】
図26は,ステップS11の列幅の算出処理のより詳細な処理フロー図である。
【0169】
セル定義情報生成処理部11は,制御情報50の初期化を行う(ステップS110)。制御情報50は,処理中にメモリ上に生成・保持する一時的情報である。制御情報50は,列位置を特定する「列位置カウンタ(ix)」,前回処理した項目位置を示す「項目位置(x)」を持つ。
【0170】
セル定義情報生成処理部11は,フォーマット定義情報31に未処理の項目情報があれば(ステップS111のY),項目情報から,列方向の項目位置(X座標値)を取り出す(ステップS112)。取り出したX座標値に基づく列幅算出処理を行う(ステップS113)。
【0171】
ステップS113の処理後に,ステップS111の処理へ戻る。未処理の項目情報がなければ(ステップS111のN),フォーマット定義情報31から,帳票の項目の右端の座標値を取り出して最終列の終了位置(X座標値)とし(ステップS114),最終列の列幅算出処理を行う(ステップS115)。
【0172】
図27は,ステップS13の行高の算出処理のより詳細な処理フロー図である。
【0173】
セル定義情報生成処理部11は,制御情報51の初期化を行う(ステップS130)。制御情報51は,処理中にメモリ上に生成・保持する一時的情報である。制御情報51は,行位置を特定する「行位置カウンタ(iy)」,前回処理した項目位置を示す「項目位置(y1)」を持つ。
【0174】
セル定義情報生成処理部11は,フォーマット定義情報31に未処理の項目情報があれば(ステップS131のY),項目情報から,列方向の項目位置(Y座標値)を取り出し,左上原点の座標系の値に換算した項目位置(Y1座標値)を得る(ステップS132)。換算したY1に基づく行高算出処理を行う(ステップS133)。
【0175】
その後,ステップS131の処理へ戻り,未処理の項目情報がなければ(ステップS131のN),フォーマット定義情報31から,帳票の項目の下端の座標値を求めて,最終行の終了位置Yとして取り出す(ステップS134)。そして,最終行の行高算出処理を行う(ステップS135)。
【0176】
図28は,S113およびS115の列幅算出処理のより詳細な処理フロー図である。
【0177】
セル定義情報生成処理部11は,取り出したX座標値と,制御情報50の項目位置xとを用いて,項目間の列方向の距離Dxを算出する(ステップS1130)。取り出したX座標値が最初の列である場合には,制御情報50の列位置カウンタixに1を設定し,取り出したX座標値を,項目位置xに設定する。一方,取り出したX座標値が最初の列でなければ,制御情報50の列位置カウンタixをインクリメントし,式1「取り出したX座標値−制御情報50の項目位置x(前回処理のX座標値)」を計算する。
【0178】
式1の計算結果,距離Dxが,セル制御情報19の丸め幅より大きいかを判定し(ステップS1131),距離Dxが丸め幅を超えるときは(ステップS1131のY),さらに,距離Dxが「基本セル幅×2」以上であるかを判定する(ステップS1132)。
【0179】
距離Dxが,「基本セル幅×2」以上であれば(ステップS1132のY),セル制御情報19の基本セル幅Wを列幅として,制御情報50のセル位置カウンタixが示す列のセル幅(列幅)に設定する。(ステップS1133)。制御情報50のセル位置カウンタixをインクリメントして更新する(ステップS1134)。項目間の距離Dxを,式2「距離Dx−基本セル幅W」を計算して求めた値で更新する(ステップS1135)。
【0180】
続いて,ステップS1132の処理へ戻り,次の列の処理として,更新した距離Dxが「基本セル幅×2」以上であるかを判定する。距離Dxが,「基本セル幅×2」以上であれば(ステップS1132のY),ステップS1133〜S1135の処理を繰り返す。距離Dxが,「基本セル幅×2」以上でなければ(ステップS1132のN),ステップS1136の処理へ進む。
【0181】
ステップS1136では,項目間の距離Dxを列幅として,制御情報50のセル位置カウンタixが示す列のセル幅に設定する。
【0182】
そして,制御情報50の項目位置xに,取り出した項目位置Xを設定して更新する(ステップS1137)。
【0183】
ステップS1131の処理で,距離Dxが丸め幅を超えないときは(ステップS1131のN),そのまま処理を終了する。
【0184】
図29は,S133およびS135の行高算出処理のより詳細な処理フロー図である。
【0185】
セル定義情報生成処理部11は,項目間の行方向の距離Dyを算出する(ステップS1330)。取り出した項目位置(Y1)が最初の行のものである場合には,制御情報51の行位置カウンタiyに1を設定し,取り出したY1座標値を,項目位置y1に設定する。取り出したY1座標値が最初の行のものでなければ,制御情報51の行位置カウンタiyをインクリメントし,式1「取り出した項目位置Y1−制御情報51の項目位置y1(前回処理の項目位置Y1)」を計算する。
【0186】
式1の計算結果,距離Dyが,セル制御情報19の丸め高さより大きいかを判定し(ステップS1331),距離Dyが丸め高さを超えるときは(ステップS1331のY),距離Dyが「基本セル高×2」以上であるかを判定する(ステップS1332)。
【0187】
距離Dyが,「基本セル高×2」以上であれば(ステップS1332のY),セル制御情報19の基本セル高さを行高として,制御情報51のセル位置カウンタiyが示す行のセル高(行高)に設定する。(ステップS1333)。制御情報51のセル位置カウンタiyをインクリメントして更新する(ステップS1334)。さらに,項目間の距離Dyを,式2「距離Dy−基本セル高」を計算して求めた値で更新する(ステップS1335)。
【0188】
続いて,ステップS1332の処理へ戻り,次の行の処理として,更新した距離Dyが「基本セル高さ×2」以上であるかを判定する。距離Dyが,「基本セル高さ×2」以上であれば(ステップS1332のY),ステップS1333〜S1335の処理を繰り返す。距離Dyが,「基本セル高さ×2」以上でなければ(ステップS1332のN),ステップS1336の処理へ進む。
【0189】
ステップS1336では,項目間の距離Dyを行高として,制御情報51のセル位置カウンタiyが示す行のセル高に設定する。
【0190】
そして,制御情報51の項目位置y1に,取り出したY1座標値を設定して更新する(ステップS1337)。
【0191】
ステップS1331の処理で,距離Dyが丸め高さを超えないときは(ステップS1331のN),そのまま処理を終了する。
【0192】
図30は,ステップS3の出力用セル定義情報生成処理のより詳細な処理フロー図である。
【0193】
セル出力部151は,モード指定部13によって指定されたモードが,モードA(=レイアウト重視モード)である場合に(ステップS30のY),レイアウト重視モードの処理を行う(ステップS31)。また,モード指定部13によって指定されたモードが,モードB(=データ重視モード)またはモードD(=オートシェイプモード)のいずれかである場合に(ステップS32のY),データ重視モードの処理を行う(ステップS33)。また,モード指定部13によって指定されたモードが,モードC(=最適化モード)であるか,またはモードが指定されなかった場合に(ステップS34のY),最適化モードの処理を行う(ステップS35)。
【0194】
セル出力部151は,セル定義決定処理中に,メモリ上に生成・保持される一時的情報である制御情報52を使用する。
【0195】
図31に,制御情報52のデータ構造例を示す。
【0196】
制御情報52は,オーバレイ用セル境界C1,項目用セル境界C2,処理済みセル境界C3,前回キャンセル項目セル位置C4,セル登録フラグFを持つ。
【0197】
オーバレイ用セル境界C1は,オーバレイ・セル定義情報23の列幅/行高に基づくセル境界を示す座標値である。項目用セル境界C2は,フォーマット・セル定義情報21の列幅/行高に基づくセル境界を示す座標値である。
【0198】
処理済みセル境界C3は,セル定義決定処理後のセル幅/セル高に基づくセル境界を示す座標値である。前回キャンセル項目セル位置C4は,前回処理において処理されなかった項目のセル位置(セル幅/セル高に基づく座標値)である。セル登録フラグFは,オーバレイの処理への採用の有無を示すフラグである。
【0199】
図32は,ステップS31のレイアウト重視用処理のより詳細な処理フロー図である。
【0200】
セル出力部151は,制御情報52を以下のように初期化する(ステップS310)。
【0201】
オーバレイ用セル境界C1=1セル目の位置(X座標値);
項目用セル境界C2=1セル目の位置(X座標値);
処理済みセル境界C3=0。
【0202】
セル出力部151は,処理するセル定義情報があるかを判定し(ステップS311),処理するセル定義情報があれば(ステップS311のY),制御情報52のオーバレイ用セル境界C1=項目用セル境界C2であるかを判定する(ステップS312)。
【0203】
C1=C2(オーバレイと項目とが同じ位置)であれば(ステップS312のY),出力用セル定義情報25に,1セル目の列幅W(C1−C3の距離)を登録する。さらに,制御情報52の処理済みセル境界C3を,C1の値で更新し,オーバレイ用セル境界C1,項目用セル境界C2を,それぞれ次のセル境界(X座標値)で更新する(ステップS313)。
【0204】
C1=C2でなければ(ステップS312のN),C1<C2であるかを判定する(ステップS314)。
【0205】
C1<C2(オーバレイが項目より左側の位置)であれば(ステップS314のY),出力用セル定義情報25に,1セル目の列幅W(C1−C3の距離)を登録する。さらに,制御情報52の処理済みセル境界C3をC1で更新し,オーバレイ用セル境界C1のみを次のセル境界(座標値)で更新する(ステップS315)。
【0206】
C1<C2でなければ(ステップS314のN),C1>C2(項目がオーバレイより左側の位置)であるとして,出力用セル定義情報25に,1セル目の列幅W(C2−C3の距離)を登録する。さらに,制御情報52の処理済みセル境界C3をC2で更新し,項目用セル境界C2のみを次のセル境界(X座標値)で更新し,ステップS311の処理へ戻る(ステップS316)。
【0207】
処理するセル定義情報がなければ(ステップS311のN),処理を終了する。
【0208】
図33は,ステップS33のデータ重視用処理のより詳細な処理フロー図である。
【0209】
セル出力部151は,フォーマット・セル定義情報21の列幅を,出力用セル定義情報25に登録する(ステップS330)。
【0210】
図34は,ステップS35の最適化用処理のより詳細な処理フロー図である。
【0211】
セル出力部151は,制御情報52を以下のように初期化する(ステップS350)。
【0212】
オーバレイ用セル境界C1=1セル目の位置(X座標値);
項目用セル境界C2=1セル目の位置(X座標値);
処理済みセル境界C3=0;
前回キャンセル項目セル位置C4=0,
セル登録フラグF=OFF。
【0213】
セル出力部151は,処理するセル定義情報があるかを判定し(ステップS351),処理するセル定義情報があれば(ステップS351のY),制御情報52のオーバレイ用セル境界C1=項目用セル境界C2であるかを判定する(ステップS352)。
【0214】
C1=C2(オーバレイと項目とが同じ位置)であれば(ステップS352のY),オーバレイ・項目のセル定義登録処理を行う(ステップS353)。
【0215】
C1=C2でなければ(ステップS352のN),C1<C2であるかを判定する(ステップS354)。
【0216】
C1<C2(オーバレイが項目より左側の位置)であれば(ステップS354のY),オーバレイのセル定義登録処理を行う(ステップS355)。
【0217】
C1<C2でなければ(ステップS354のN),C1>C2(項目がオーバレイより左側の位置)であるとして,項目のセル定義登録処理を行う(ステップS356)。
【0218】
図35は,ステップS353のオーバレイ・項目のセル定義登録処理のより詳細な処理フロー図である。
【0219】
セル出力部151は,制御情報52のセル登録フラグFをONに更新し(ステップS3530),前回キャンセル項目セル位置C4をクリアする(ステップS3531)。そして,式「オーバレイ用セル境界C1−処理済みセル境界C3」で算出した距離を,出力用セル定義情報25のセル幅に登録する(ステップS3532)。
【0220】
制御情報52の処理済みセル境界C3を,オーバレイ用セル境界C1で更新し(ステップS3533),オーバレイ用セル境界C1と項目用セル境界C2を次のセル境界の位置(X座標値)で更新して,処理を終了する(ステップS3534)。
【0221】
図36は,ステップS355のオーバレイのセル定義登録処理のより詳細な処理フロー図である。
【0222】
セル出力部151は,制御情報52のセル登録フラグFをONに更新し(ステップS3550),前回キャンセル項目セル位置C4をクリアする(ステップS3551)。そして,式「オーバレイ用セル境界C1−処理済みセル境界C3」で算出した距離を,出力用セル定義情報25のセル幅に登録する(ステップS3552)。
【0223】
制御情報52の処理済みセル境界C3を,オーバレイ用セル境界C1で更新し(ステップS3553),オーバレイ用セル境界C1のみを次のセル境界の位置(X座標値)で更新して,処理を終了する(ステップS3554)。
【0224】
図37は,ステップS356の項目のセル定義登録処理のより詳細な処理フロー図である。
【0225】
セル出力部151は,制御情報52のセル登録フラグFがONであるかを判定し(ステップS3560),制御情報52のセル登録フラグFがONであれば(ステップS3560のY),前回キャンセル項目セル位置C4を項目用セル境界C2で更新し,項目用セル境界C2のみを,次のセル境界の位置(X座標値)で更新し,セル登録フラグFをOFFにする(ステップS3561)。
【0226】
制御情報52のセル登録フラグFがONでなければ(ステップS3560のN),式「項目用セル境界C2−処理済みセル境界C3」で算出した距離を,出力用セル定義情報25のセル幅に登録する。制御情報52の処理済みセル境界C3を項目用セル境界C2で更新し,項目用セル境界C2のみを次のセル境界の位置(X座標値)で更新する(ステップS3562)。
【0227】
なお,ステップS3561において,処理対象のセルの長さが0である場合には,項目用セル境界C2のみを次のセル境界の位置に更新する処理だけを行う。
【0228】
以上の図32〜図37の処理フローを,セル幅(列幅)の処理として説明したが,セル出力部151は,セル高さ(行高)についても同様に処理を行う。
【0229】
図38は,ステップS4のオーバレイ出力処理のより詳細な処理フロー図である。
【0230】
セル出力部151は,オーバレイ定義情報33に未処理の情報があるかを判定し(ステップS40),未処理の情報があれば(ステップS40のY),オーバレイ位置・セル位置変換処理を行う(ステップS41)。さらに,セル出力部151は,印刷データ登録処理(ステップS42),書式登録処理(ステップS43),フォント・配置属性登録処理(ステップS44),セル結合登録処理(ステップS45),罫線・網掛け登録処理(ステップS46)を行う。
【0231】
オーバレイ定義情報33に未処理の情報がある間,ステップS41〜S46の処理を繰り返し,未処理の情報がなければ(ステップS40のN),スプレッドシート出力処理を行う(ステップS47)。
【0232】
図39は,ステップS5のフォーマット出力処理のより詳細な処理フロー図である。
【0233】
セル出力部151は,フォーマット定義情報31に未処理の情報があるかを判定し(ステップS50),未処理の情報があれば(ステップS50のY),項目位置・セル位置変換処理を行う(ステップS51)。さらに,セル出力部151は,印刷データ登録処理(ステップS52),書式登録処理(ステップS53),フォント・配置属性登録処理(ステップS54),セル結合登録処理(ステップS55),罫線・網掛け登録処理(ステップS56)を行う。
【0234】
フォーマット定義情報31に未処理の情報がある間,ステップS51〜S56の処理を繰り返し,未処理の情報がなければ(ステップS50のN),スプレッドシート出力処理を行う(ステップS57)。
【0235】
図38の処理フロー図と図39の処理フロー図とにおいて,ステップS40とS50,ステップS41とS51,ステップS42とS52,ステップS43とS53,ステップS44とS54,ステップS45とS55,ステップS46とS56,ステップS47とS57は,それぞれが同様の処理を行うものである。
【0236】
以下の図40〜図45の処理フロー図は,図38および図39の処理ステップの詳細な説明図である。処理説明では,図39の処理フロー図に則して処理を説明する。
【0237】
図40は,ステップS41(S51)の項目位置・セル位置変換処理のより詳細な処理フロー図である。
【0238】
セル出力部151は,処理する項目の項目位置が何列目になるかを算出する。フォーマット・セル定義情報21を参照して,座標原点から順に列幅を加算し,加算した列幅が,フォーマット定義情報31の項目の位置(X座標値)となった時点の列を求める(ステップS410)。さらに,処理する項目の項目位置が何行目になるかを算出する。フォーマット・セル定義情報21を参照して,座標原点から順に行高を加算し,加算した行高が,フォーマット定義情報31の項目の位置(Y座標値)となった時点の列を,求める(ステップS411)。算出したセル位置(行,列)を保持する(ステップS412)。
【0239】
図41は,ステップS42(S52)の印刷データ登録処理のより詳細な処理フロー図である。
【0240】
セル出力部151は,入力データ群35を取得し,フォーマット定義情報31の項目情報のレコード内位置から,項目に対応する入力データ(以降,印刷データという)を取り出す(ステップS420)。
【0241】
セル出力部151は,フォーマット定義情報31の項目情報の項目種別が日付または時刻かを判定し(ステップS421),印刷データの項目種別が日付または時刻であれば(ステップS421のY),印刷データをシリアル値に変換する(ステップS422)。印刷データの項目種別が日付または時刻のいずれでもなければ(ステップS421のN),項目種別が数値かを判定する(ステップS423)。さらに,印刷データの項目種別が数値であれば(ステップS423のY),印刷データを数値文字列に変換する(ステップS424)。
【0242】
そして,セル出力部151は,印刷データと対応するセル位置とを出力処理用情報26へ登録する(ステップS425)。出力処理用情報26は,ステップS47の処理のための情報である。
【0243】
図42は,ステップS43(S53)の書式登録処理のより詳細な処理フロー図である。
【0244】
セル出力部151は,フォーマット定義情報31の項目情報の編集形式が数値編集かを判定し(ステップS430),項目情報の変種形式が数値編集であれば(ステップS430のY),数値編集に対応するEXCEL用の書式を生成する。例えば,全体桁数,小数部桁数の設定,カンマ区切り,通貨記号編集,符号位置,負記号,負データ時の表示色,ゼロデータ制御,通貨記号,通貨記号位置,正データの「+」表示,小数部のゼロサプレス等の書式を生成する(ステップS431)。
【0245】
次に,項目情報の編集形式が,日付編集または時刻編集であるかを判定し(ステップS432),編集形式が,日付編集または時刻編集であれば(ステップS432のY),日付編集,時刻編集に対応するEXCEL用の書式を生成する(ステップS433)。項目情報の編集形式が郵便番号編集であるかを判定し(ステップS434),編集形式が郵便番号編集であれば(ステップS434のY),郵便番号編集に対応するEXCEL用の書式を生成する。例えば,5桁/7桁の設定,挿入文字(ハイフン,空白)の有無または種別を生成する(ステップS435)。
【0246】
セル出力部151は,ステップS430,S432,S434のいずれの判定処理でも該当していなければ,文字列データを示す書式(@)を生成する(ステップS436)。
【0247】
セル出力部151は,ステップS431〜S436の処理で生成した書式と対応するセル位置とを指定して,出力処理用情報26に登録する(ステップS437)。
【0248】
図43は,ステップS44(S54)のフォント・配置属性登録処理のより詳細な処理フロー図である。
【0249】
セル出力部151は,フォーマット定義情報31の項目情報のフォントの属性に関する情報を,出力処理用情報に登録する(ステップS440)。さらに,フォーマット定義情報31の項目情報の文字列の配置の属性に関する情報を,出力処理用情報26に登録する(ステップS441)。
【0250】
図44は,ステップS45(S55)のセル結合登録処理のより詳細な処理フロー図である。
【0251】
セル出力部151は,対応するセル範囲を算出する(ステップS450)。フォーマット定義情報31の項目位置(X,Y1)と,項目情報の項目領域長(X軸方向の幅)と項目の高さ(Y軸方向の幅)から,項目が占めるセルの範囲を計算する。そして,フォーマット・セル定義情報21から,計算した範囲に対応するセルの範囲を特定する。
【0252】
そして,特定したセル範囲を結合範囲とし,結合範囲のセル位置を出力処理用情報26に登録する(ステップS451)。
【0253】
図45は,ステップS46(S56)の罫線・網掛け登録処理のより詳細な処理フロー図である。
【0254】
セル出力部151は,フォーマット定義情報31の罫線情報の種別が罫線であるかを判定する(ステップS460)。
【0255】
罫線情報の種別が罫線であれば(ステップS460のY),対応するセルの範囲を算出する(ステップS461)。
【0256】
フォーマット・セル定義情報21から,罫線の開始位置(X1,Y1)と終了位置(X2,Y2)が,どの列および行に含まれるかを算出する。
【0257】
なお,データ重視モードまたは最適化モードの処理によってスプレッドシート41が生成される場合に,マッピングされた項目またはオーバレイの罫線については,罫線の開始位置/終了位置の座標値が,セルの列幅/行高の中間点を基準として,この中間点より開始位置/終了位置の座標値が小さければ,1つ前(座標原点側)のセルの区切りを範囲の開始位置/終了位置として,中間点より開始位置/終了位置の座標値が大きければ,1つ後(座標原点と反対側)のセルの区切りを範囲の開始位置/終了として,セルの範囲を算出する。
【0258】
セル出力部151は,フォーマット定義情報31の罫線情報の種別が網掛けであるかを判定する(ステップS462)。罫線情報の種別が網掛けであれば(ステップS462のY),対応するセルの範囲を算出する。セルの範囲の算出は,ステップS461の処理と同様の処理によって行い,フォーマット・セル定義情報21から,網掛けの開始位置(X1,Y1)と終了位置(X2,Y2)が,どの列および行に含まれるかを算出する(ステップS463)。
【0259】
罫線,網掛けと特定したセル範囲を指定し,出力処理用情報26に登録する(ステップS464)。
【0260】
図46は,ステップS47(S57)のスプレッドシート出力処理のより詳細な処理フロー図である。
【0261】
セル出力部151は,出力用セル定義情報25に出力処理が未処理のセル情報があるかを判定し(ステップS470),入力データ群35のデータを別シートに出力するかを判定する(ステップS471)。
【0262】
入力データ群35のデータの別シート出力が指定されている場合に(ステップS471のY),XML形式のデータ用シートのスプレッドシート41′を生成し,スプレッドシート41′へ印刷データを出力する処理を行い(ステップS472),スプレッドシート41に,データ用シートのスプレッドシート41′内の印刷データへのリンクを登録する(ステップS473)。
【0263】
入力データ群35のデータの別シート出力が指定されていない場合に(ステップS471のN),XML形式のスプレッドシート41に印刷データを出力する処理を行う(ステップS474)。
【0264】
セル出力部151は,スプレッドシート41のセル情報(セル)に対して,出力処理用情報26に登録された書式を,XML形式の属性データへ出力し(ステップS475),出力処理用情報26に登録されたフォント,配置情報を属性データへ出力し(ステップS476),出力処理用情報26に登録されたセル結合の情報を属性データへ出力し(ステップS477),出力処理用情報26に登録された罫線,網掛けの情報を属性データへ出力する(ステップS478)。
【0265】
そして,未処理のセル情報がなければ(ステップS470のN),属性データ(XML形式)を圧縮して,出力先のスプレッドシート41へ保存する(ステップS479)。
【0266】
以上,本発明を実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【0267】
また,本発明の実施の形態として開示したスプレッドシート生成装置1は,プログラムがコンピュータにより読み取られ実行されることにより,スプレッドシート生成装置1が有する各処理部が実現されることによって構築することができる。このプログラムは,コンピュータが読み取り可能な,可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記録媒体に格納することができ,これらの記録媒体に記録して提供される。または,このプログラムは,通信インタフェースを介して種々の通信網を利用した送受信により提供される。
【0268】
以上の実施例を含む実施形態に関し,さらに以下の付記を開示する。
【0269】
(付記1)
コンピュータを,
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得するフォーマット定義情報取得処理手段と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得するオーバレイ定義情報取得処理手段と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定し,当該決定した列幅および行高に関するフォーマット・セル定義情報を生成するセル定義情報生成処理手段と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定し,前記フォーマット・セル定義情報の項目群の列幅および行高,ならびに前記決定したオーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成するスプレッドシート出力処理手段
として機能させる
ことを特徴とするスプレッドシート生成プログラム。
【0270】
(付記2)
前記コンピュータを,
前記スプレッドシート出力処理手段によって実行される処理を特定するモードを指定するモード指定手段として機能させるとともに,
前記スプレッドシート出力処理手段は,前記モード指定手段によって指定されたモードに基づいて前記出力用の列幅および行高を決定する
ことを特徴とする前記付記1に記載のスプレッドシート生成プログラム。
【0271】
(付記3)
前記モード指定手段は,前記モードとしてデータ重視モードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記データ重視モードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて前記出力用の列幅および行高を決定し,決定した出力用の列幅および行高を備えるスプレッドシートを生成し,生成したスプレッドシートにおいて,前記オーバレイ定義情報の各オーバレイのレイアウト位置に最も近い列幅の区切りを特定し,特定した列幅の区切りに対応する列幅を当該オーバレイに対応する列幅として決定する
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【0272】
(付記4)
前記モード指定手段は,前記モードとしてデータ重視モードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記データ重視モードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて前記出力用の列幅および行高を決定し,決定した出力用の列幅および行高を備えるスプレッドシートを生成し,生成したスプレッドシートにおいて,前記オーバレイ定義情報の各オーバレイのレイアウト位置に最も近い行高の区切りを特定し,特定した行高の区切りに対応する行高を当該オーバレイに対応する列幅として決定する
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【0273】
(付記5)
前記モード指定手段は,前記モードとして最適化モードを指定し,
前記セル定義情報生成処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記オーバレイ定義情報の各オーバレイの列方向のレイアウト位置から,隣り合う位置間の距離に基づいて列幅を決定し,当該決定した列幅に関するオーバレイ・セル定義情報を生成し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記フォーマット・セル定義情報および前記オーバレイ・セル定義情報それぞれの列幅の区切りの位置を昇順にソートし,項目とオーバレイとが隣り合う列幅の区切りの位置について,昇順が下位の区切り位置を上位の区切り位置で置き換え,置き換えた列幅の区切りに対応する列幅を当該項目または当該オーバレイに対応する列幅として決定し,決定した列幅を含む前記ソートした列幅を前記出力用の列幅とする
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【0274】
(付記6)
前記モード指定手段は,前記モードとして最適化モードを指定し,
前記セル定義情報生成処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記オーバレイ定義情報の各オーバレイの行方向のレイアウト位置から,隣り合う位置間の距離に基づいて行高を決定し,当該決定した行高に関するオーバレイ・セル定義情報を生成し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記フォーマット・セル定義情報および前記オーバレイ・セル定義情報それぞれの行高区切りの位置を昇順にソートし,項目とオーバレイとが隣り合う列幅の区切りの位置について,昇順が下位の区切り位置を上位の区切り位置で置き換え,置き換えた行高の区切りに対応する列幅を当該項目または当該オーバレイに対応する行高として決定し,決定した行高を含む前記ソートした行高を前記出力用の行高とする
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【0275】
(付記7)
前記モード指定手段は,前記モードとしてオートシェイプモードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記オートシェイプモードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて決定した前記出力用の列幅および行高を備えるスプレッドシートを生成する処理と,前記オーバレイ定義情報の各オーバレイに対応する図形を,前記生成したスプレッドシートにおいて当該オーバレイのレイアウト位置に描画する図形データを生成する処理とを行う
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【0276】
(付記8)
前記コンピュータを,
前記帳票の項目各々に対する入力データ群を取得する入力データ取得手段として機能させるとともに,
前記スプレッドシート出力処理手段は,前記入力データ群の各入力データを,前記生成したスプレッドシートの各項目に対応するセルに与える
ことを特徴とする前記付記1ないし付記7のいずれか一項に記載のスプレッドシート生成プログラム。
【0277】
(付記9)
前記フォーマット・セル定義情報生成手段は,前記フォーマット定義情報の項目群の列方向および行方向の座標値を昇順にソートし,前記ソート結果から,昇順の順位が1つ上の項目間との間の列方向の距離に基づいて列幅を決定し,前記ソート結果から,昇順の順位が1つ上の項目との間の行方向の距離に基づいて行高を決定し,前記フォーマット定義情報に基づいて決定された列幅および行高に関するフォーマット・セル定義情報を生成する
ことを特徴とする前記付記1ないし付記8のいずれか一項に記載のスプレッドシート生成プログラム。
【0278】
(付記10)
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得するフォーマット定義情報取得処理手段と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得するオーバレイ定義情報取得処理手段と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定し,当該決定した列幅および行高に関するフォーマット・セル定義情報を生成するセル定義情報生成処理手段と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定し,前記フォーマット・セル定義情報の項目群の列幅および行高,ならびに前記決定したオーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成するスプレッドシート出力処理手段とを備える
ことを特徴とするスプレッドシート生成装置。
【0279】
(付記11)
コンピュータが実行するスプレッドシート生成方法であって,
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得する処理過程と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得する処理過程と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定する処理過程と,
前記フォーマット定義情報から決定した列幅および行高に関するフォーマット・セル定義情報を生成する処理過程と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定する処理過程と,
前記フォーマット・セル定義情報の項目群の列幅および行高ならびに前記オーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成する処理過程とを備える
ことを特徴とするスプレッドシート生成方法。
【図面の簡単な説明】
【0280】
【図1】本発明の一実施例として開示するスプレッドシート生成装置の構成例を示す図である。
【図2】本発明の一実施例における帳票の印刷結果例を示す図である。
【図3】本発明の一実施例におけるフォーマット定義情報のデータ構成例を示す図である。
【図4】本発明の一実施例におけるフォーマット定義情報の項目情報のデータ構成例を示す図である。
【図5】本発明の一実施例におけるフォーマット定義情報の項目情報の編集形式とスプレッドシートの書式との対応関係の定義例を示す図である。
【図6】本発明の一実施例におけるフォーマット定義情報の項目情報のレコード内位置と各項目に与えられる入力データとの関係を説明するための図である。
【図7】本発明の一実施例におけるフォーマット定義情報の罫線情報のデータ構成例を示す図である。
【図8】本発明の一実施例におけるオーバレイ定義情報のデータ構成例を示す図である。
【図9】本発明の一実施例におけるオーバレイ定義情報の文字列情報のデータ構成例を示す図である。
【図10】本発明の一実施例におけるオーバレイ定義情報の罫線情報のデータ構成例を示す図である。
【図11】本発明の一実施例におけるオーバレイ定義情報の枠情報のデータ構成例を示す図である。
【図12】本発明の一実施例におけるオーバレイ定義情報の網掛け情報のデータ構成例を示す図である。
【図13】本発明の一実施例におけるセル制御情報のデータ構成例を示す図である。
【図14】本発明の一実施例におけるフォーマット定義情報に基づく列幅および行高の決定例を示す図である。
【図15】本発明の一実施例におけるオーバレイ定義情報に基づく列幅および行高の決定例を示す図である。
【図16】本発明の一実施例における,フォーマット・セル定義情報とオーバレイ・セル定義情報のレイアウト位置に関する情報のデータ構成例を示す図である。
【図17】本発明の一実施例における,OOXML(Office Open XML)形式のスプレッドシートの例を示す図である。
【図18】本発明の一実施例における,レイアウト重視モードの処理によるスプレッドシートのセル配列例を示す図である。
【図19】本発明の一実施例における,データ重視モードの処理によるスプレッドシートのセル配列例を示す図である。
【図20】本発明の一実施例における,最適化モードの処理によるスプレッドシートのセル配列例を示す図である。
【図21】本発明の一実施例における,オートシェイプモードの処理によるスプレッドシートのセル配列例を示す図である。
【図22】本発明の一実施例における,複数のデータファイルで構成されたスプレッドシートから入力データのみを抽出する場合を説明するための図である。
【図23】本発明の一実施例における,入力データとオーバレイとの情報の二次活用を説明するための図である。
【図24】本発明の一実施例における,スプレッドシート生成装置の概要処理の処理フロー例を示す図である。
【図25】本発明の一実施例におけるステップS1のセル定義情報の生成処理のより詳細な処理フロー図である。
【図26】本発明の一実施例におけるステップS11の列幅の算出処理のより詳細な処理フロー図である。
【図27】本発明の一実施例におけるステップS13の行高の算出処理のより詳細な処理フロー図である。
【図28】本発明の一実施例におけるステップS113およびS115の列幅算出処理のより詳細な処理フロー図である。
【図29】本発明の一実施例におけるステップS133およびS135の行高算出処理のより詳細な処理フロー図である。
【図30】本発明の一実施例におけるステップS3の出力用セル定義情報生成処理のより詳細な処理フロー図である。
【図31】本発明の一実施例における制御情報52のデータ構造例を示す図である。
【図32】本発明の一実施例におけるステップS31のレイアウト重視用処理のより詳細な処理フロー図である。
【図33】本発明の一実施例におけるステップS33のデータ重視用処理のより詳細な処理フロー図である。
【図34】本発明の一実施例におけるステップS35の最適化用処理のより詳細な処理フロー図である。
【図35】本発明の一実施例におけるステップS353のオーバレイ・項目のセル定義登録処理のより詳細な処理フロー図である。
【図36】本発明の一実施例におけるステップS355のオーバレイのセル定義登録処理のより詳細な処理フロー図である。
【図37】本発明の一実施例におけるステップS356の項目のセル定義登録処理のより詳細な処理フロー図である。
【図38】本発明の一実施例におけるステップS4のオーバレイ出力処理のより詳細な処理フロー図である。
【図39】本発明の一実施例におけるステップS5のフォーマット出力処理のより詳細な処理フロー図である。
【図40】本発明の一実施例におけるステップS41(S51)の項目位置・セル位置変換処理のより詳細な処理フロー図である。
【図41】本発明の一実施例におけるステップS42(S52)の印刷データ登録処理のより詳細な処理フロー図である。
【図42】本発明の一実施例におけるステップS43(S53)の書式登録処理のより詳細な処理フロー図である。
【図43】本発明の一実施例におけるステップS44(S54)のフォント・配置属性登録処理のより詳細な処理フロー図である。
【図44】本発明の一実施例におけるステップS45(S55)のセル結合登録処理のより詳細な処理フロー図である。
【図45】本発明の一実施例におけるステップS46(S56)の罫線・網掛け登録処理のより詳細な処理フロー図である。
【図46】本発明の一実施例におけるステップS47(S57)のスプレッドシート出力処理のより詳細な処理フロー図である。
【符号の説明】
【0281】
1 スプレッドシート生成装置
11 セル定義情報生成処理部
13 モード指定部
15 スプレッドシート出力部
151 セル出力部
152 オートシェイプ出力部
19 セル制御情報
21 フォーマット・セル定義情報
23 オーバレイ・セル定義情報
25 出力用セル定義情報
31 フォーマット定義情報
33 オーバレイ定義情報
35 入力データ群
41,41′ スプレッドシート
51,52,53 制御情報

【特許請求の範囲】
【請求項1】
コンピュータを,
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得するフォーマット定義情報取得処理手段と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得するオーバレイ定義情報取得処理手段と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定し,当該決定した列幅および行高に関するフォーマット・セル定義情報を生成するセル定義情報生成処理手段と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定し,前記フォーマット・セル定義情報の項目群の列幅および行高,ならびに前記決定したオーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成するスプレッドシート出力処理手段
として機能させる
ことを特徴とするスプレッドシート生成プログラム。
【請求項2】
前記コンピュータを,
前記スプレッドシート出力処理手段によって実行される処理を特定するモードを指定するモード指定手段として機能させるとともに,
前記スプレッドシート出力処理手段は,前記モード指定手段によって指定されたモードに基づいて前記出力用の列幅および行高を決定する
ことを特徴とする請求項1に記載のスプレッドシート生成プログラム。
【請求項3】
前記モード指定手段は,前記モードとしてデータ重視モードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記データ重視モードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて前記出力用の列幅および行高を決定し,決定した出力用の列幅および行高を備えるスプレッドシートを生成し,生成したスプレッドシートにおいて,前記オーバレイ定義情報の各オーバレイのレイアウト位置に最も近い列幅の区切りを特定し,特定した列幅の区切りに対応する列幅を当該オーバレイに対応する列幅として決定する
ことを特徴とする請求項2に記載のスプレッドシート生成プログラム。
【請求項4】
前記モード指定手段は,前記モードとしてデータ重視モードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記データ重視モードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて前記出力用の列幅および行高を決定し,決定した出力用の列幅および行高を備えるスプレッドシートを生成し,生成したスプレッドシートにおいて,前記オーバレイ定義情報の各オーバレイのレイアウト位置に最も近い行高の区切りを特定し,特定した行高の区切りに対応する行高を当該オーバレイに対応する列幅として決定する
ことを特徴とする請求項2に記載のスプレッドシート生成プログラム。
【請求項5】
前記モード指定手段は,前記モードとして最適化モードを指定し,
前記セル定義情報生成処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記オーバレイ定義情報の各オーバレイの列方向のレイアウト位置から,隣り合う位置間の距離に基づいて列幅を決定し,当該決定した列幅に関するオーバレイ・セル定義情報を生成し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記フォーマット・セル定義情報および前記オーバレイ・セル定義情報それぞれの列幅の区切りの位置を昇順にソートし,項目とオーバレイとが隣り合う列幅の区切りの位置について,昇順が下位の区切り位置を上位の区切り位置で置き換え,置き換えた列幅の区切りに対応する列幅を当該項目または当該オーバレイに対応する列幅として決定し,決定した列幅を含む前記ソートした列幅を前記出力用の列幅とする
ことを特徴とする請求項2に記載のスプレッドシート生成プログラム。
【請求項6】
前記モード指定手段は,前記モードとして最適化モードを指定し,
前記セル定義情報生成処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記オーバレイ定義情報の各オーバレイの行方向のレイアウト位置から,隣り合う位置間の距離に基づいて行高を決定し,当該決定した行高に関するオーバレイ・セル定義情報を生成し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記最適化モードが指定された場合に,前記フォーマット・セル定義情報および前記オーバレイ・セル定義情報それぞれの行高区切りの位置を昇順にソートし,項目とオーバレイとが隣り合う列幅の区切りの位置について,昇順が下位の区切り位置を上位の区切り位置で置き換え,置き換えた行高の区切りに対応する列幅を当該項目または当該オーバレイに対応する行高として決定し,決定した行高を含む前記ソートした行高を前記出力用の行高とする
ことを特徴とする前記付記2に記載のスプレッドシート生成プログラム。
【請求項7】
前記モード指定手段は,前記モードとしてオートシェイプモードを指定し,
前記スプレッドシート出力処理手段は,前記モード指定手段によって前記オートシェイプモードが指定された場合に,前記フォーマット・セル定義情報の列幅および行高に基づいて決定した前記出力用の列幅および行高を備えるスプレッドシートを生成する処理と,前記オーバレイ定義情報の各オーバレイに対応する図形を,前記生成したスプレッドシートにおいて当該オーバレイのレイアウト位置に描画する図形データを生成する処理とを行う
ことを特徴とする請求項2に記載のスプレッドシート生成プログラム。
【請求項8】
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得するフォーマット定義情報取得処理手段と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得するオーバレイ定義情報取得処理手段と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定し,当該決定した列幅および行高に関するフォーマット・セル定義情報を生成するセル定義情報生成処理手段と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定し,前記フォーマット・セル定義情報の項目群の列幅および行高,ならびに前記決定したオーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成するスプレッドシート出力処理手段とを備える
ことを特徴とするスプレッドシート生成装置。
【請求項9】
コンピュータが実行するスプレッドシート生成方法であって,
帳票を構成する項目群の前記帳票内のレイアウト位置に関するフォーマット定義情報を取得する処理過程と,
前記帳票に重畳して出力されるオーバレイ群の前記帳票内のレイアウト位置に関するオーバレイ定義情報を取得する処理過程と,
前記フォーマット定義情報の各項目の列方向の位置および行方向のレイアウト位置から,隣り合う項目間の距離に基づいて列幅および行高をそれぞれ決定する処理過程と,
前記フォーマット定義情報から決定した列幅および行高に関するフォーマット・セル定義情報を生成する処理過程と,
前記オーバレイ定義情報に基づいて前記オーバレイのレイアウト位置に対応する列幅および行高を決定する処理過程と,
前記フォーマット・セル定義情報の項目群の列幅および行高ならびに前記オーバレイのレイアウト位置に基づく列幅および行高に基づいて,出力用の列幅および行高ならびに当該列幅と行高とのセル配列における前記項目群およびオーバレイ群の各々が対応するセルを特定したスプレッドシートを生成する処理過程とを備える
ことを特徴とするスプレッドシート生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate


【公開番号】特開2010−140122(P2010−140122A)
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【出願番号】特願2008−313849(P2008−313849)
【出願日】平成20年12月10日(2008.12.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】