(57)【特許請求の範囲】
【請求項１】
１枚のスプレッドシート上に配置する複数の表の各罫線および罫線位置を取得して表毎に分類し、
前記取得した罫線の中から異なる表に属する２つの罫線の組を選択し、この２つの罫線の罫線位置が相違しかつその差分が所定の変更許容範囲内に収まる場合に、該２つの罫線のいずれか一方または双方の罫線位置を移動させて前記２つの罫線の罫線位置を１つの罫線位置に統合する統合処理を、１組以上について行い、
前記統合処理終了後の罫線位置に従ってセルを設定したスプレッドシートデータを生成する
ことを特徴とするスプレッドシートデータ生成装置。
【請求項２】
複数の表が含まれる１ページの画像データもしくはそれぞれ表を含む複数ページの画像データから複数の表を検出し、該検出した複数の表を、前記１枚のスプレッドシート上に配置する複数の表として処理する
ことを特徴とする請求項１に記載のスプレッドシートデータ生成装置。
【請求項３】
基準とする表を決定し、
前記基準とする表に属する罫線と他の表に属する罫線とを、前記組にする
ことを特徴とする請求項１または２に記載のスプレッドシートデータ生成装置。
【請求項４】
前記統合を列方向に行う場合は、列方向の罫線数が最多の表を前記基準の表に決定し、
前記統合を行方向に行う場合は、行方向の罫線数が最多の表を前記基準の表に決定する
ことを特徴とする請求項３に記載のスプレッドシートデータ生成装置。
【請求項５】
基準の表を変更して、前記統合処理を再度行う
ことを特徴とする請求項３または４のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項６】
前記組にされた２つの罫線のうち、前記基準とする表の罫線の罫線位置に、他の表の罫線の罫線位置を合わせる
ことを特徴とする請求項３乃至５のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項７】
前記組にされた２つの罫線の罫線位置をこれらの中間位置に統合する
ことを特徴とする請求項１乃至５のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項８】
前記組にされた２つの罫線のうち、一方の罫線の罫線位置を他方の罫線の罫線位置に移動させた場合に該移動させた罫線を枠線に含むセルであってサイズが小さくなるセルの数が少なくなる方の罫線を、移動させる側の罫線にして前記統合を行う
ことを特徴とする請求項１乃至５のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項９】
差分の少ない組から優先して前記統合処理を行う
ことを特徴とする請求項１乃至８のいずれか１つ記載のスプレッドシートデータ生成装置。
【請求項１０】
セル数が所定の上限数以下に収まるまで前記統合処理を繰り返すと共に、現在の変更許容範囲で前記統合処理を行ってもセル数が減少しなくなったときは前記変更許容範囲を広げる
ことを特徴とする請求項１乃至９のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１１】
行方向の統合処理で使用する変更許容範囲と、列方向の統合処理で使用する変更許容範囲とを個別に設定し得る
ことを特徴とする請求項１乃至１０のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１２】
列方向、行方向の順に、または行方向、列方向の順に、両方向について前記統合処理を行う
ことを特徴とする請求項１乃至１１のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１３】
列方向にのみ前記複数の表の存在する場合は、列方向にのみ前記統合処理を行い、
行方向にのみ前記複数の表が存在する場合は、行方向にのみ前記統合処理を行う
ことを特徴とする請求項１乃至１１のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１４】
前記変更許容範囲を複数段階に分けて設定する
ことを特徴とする請求項１乃至１３のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１５】
前記変更許容範囲を、移動させる罫線を枠線に含みかつ該罫線の前記移動させる側にあるセルのサイズに応じて、変更する
ことを特徴とする請求項１乃至１４のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１６】
列方向の罫線の統合処理では、列方向の境界線でスプレッドシートを複数のエリアに分割し、エリア毎に基準の表を設定し、
行方向の罫線の統合処理では、行方向の境界線でスプレッドシートを複数のエリアに分割し、エリア毎に基準の表を設定する
ことを特徴とする請求項３乃至５のいずれか１つに記載のスプレッドシートデータ生成装置。
【請求項１７】
情報処理装置を、
１枚のスプレッドシート上に配置する複数の表の各罫線および罫線位置を取得して表毎に分類する機能と、
前記取得した罫線の中から異なる表に属する２つの罫線の組を選択し、この２つの罫線の罫線位置が相違しかつその差分が所定の変更許容範囲内に収まる場合に、該２つの罫線のいずれか一方または双方の罫線位置を移動させて前記２つの罫線の罫線位置を１つの罫線位置に統合する統合処理を、１組以上について行う機能と、
前記統合処理終了後の罫線位置に従ってセルを設定したスプレッドシートデータを生成する機能と、
を実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１枚のスプレッドシート上に複数の表を配置したスプレッドシート形式のデータを生成するスプレッドシートデータ生成装置およびプログラムに関する。
【背景技術】
【０００２】
原稿をスキャナで読み取って電子化する技術において、読み取った画像データから表領域を抽出して対応するスプレッドシート形式のファイルを自動生成する機能の要請がある。
【０００３】
表を含む画像データをスプレッドシート形式のファイルに変換する際、その表を構成する罫線に合わせて、スプレッドシートのセル幅とセル高さを設定する必要がある。原稿に含まれる表には不定形のものも多く含まれるため、その対応が必要になる。
【０００４】
不定形の表に対応する技術としては、たとえば、原稿のイメージデータに含まれる表を分析し、該表で用いられている全てのセルを整数値で分割できるセル幅/セル高を有するセルの内、最も大きいセルを最小セルに設定する。そして、この最小セルを隙間無く配置したスプレッドシートを構成し、元の表で使用されていた各種サイズのセルを、最小セルを複数組み合わせて構成することで、スプレッドシート形式のデータを自動生成する技術がある（たとえば、特許文献１参照。）。
【０００５】
また、貼り付け元のスプレッドシートに、他のスプレッドシートを貼り付ける際に、貼り付けられる側の表の構成情報と貼り付ける側の表の構成情報とをそれぞれ取得し、どちらも同時に表現可能なセルの数と幅に分離してスプレッドシートを再設定する技術がある（たとえば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１３４１４２号公報
【特許文献２】特開２００７−３２８５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
１枚の原稿に含まれる複数の表を１枚のスプレッドシートにまとめる、あるいは、複数枚の原稿から読み取った複数の表を１枚のスプレッドシートにまとめる、あるいは、複数のスプレッドシートを１枚にまとめるなどのように、１枚のスプレッドシート上に複数の表を混在させる場合、罫線の位置は各表で相違する場合が多く一致しない。そのため、特許文献１、２の技術では、スプレッドシート上に設定されるセル構成が細かくなって扱いにくくなる。
【０００８】
たとえば、特許文献１の技術では、図１６に示すように、複数の表が含まれる１枚の原稿（同図左側）からスプレッドシート形式のデータ（同図右側）を生成すると、破線で示すように、スプレッドシート全体が最小セル単位に分割されてしまう。
【０００９】
特に、紙原稿を読み込んでスプレッドシート形式の電子データに変換する場合には、同じレイアウトの原稿を連続読み込みしたとしても搬送時の位置ずれにより各原稿の罫線位置が完全に一致することは望めない。また、向きや倍率の異なる混載原稿がスキャンされることもある。そのため、読み取り原稿から複数の表を混在させたスプレッドシートを自動生成すると、セルの構成が細かくなりやすい。
【００１０】
微小サイズのセル数の増大は、単にファイルを開き表示するのみであれば問題は少ない。しかし、紙原稿をスキャンし、スプレッドシート形式の電子データに変換する場合、該電子データの用途が後の編集にあることが多いので、セル構成が複雑になると、編集時の取り扱いが難しくなって影響が大きい。
【００１１】
本発明は、上記の問題を解決しようとするものであり、微小セルの発生やセル構成の細分化を回避しつつ複数の表を混在させたスプレッドシートのデータを自動生成することのできるスプレッドシートデータ生成装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１３】
［１］１枚のスプレッドシート上に配置する複数の表の各罫線および罫線位置を取得して表毎に分類し、
前記取得した罫線の中から異なる表に属する２つの罫線の組を選択し、この２つの罫線の罫線位置が相違しかつその差分が所定の変更許容範囲内に収まる場合に、該２つの罫線のいずれか一方または双方の罫線位置を移動させて前記２つの罫線の罫線位置を１つの罫線位置に統合する統合処理を、１組以上について行い、
前記統合処理終了後の罫線位置に従ってセルを設定したスプレッドシートデータを生成する
ことを特徴とするスプレッドシートデータ生成装置。
【００１４】
上記発明では、異なる表に属する２つの罫線の罫線位置の差分が変更許容範囲内であれば、いずれか一方または双方の罫線の罫線位置を移動修正して２つの罫線の罫線位置を１つの罫線位置に統合する。これにより、セルの分割数が減少し、編集に適したスプレッドシートデータを生成することができる。
【００１５】
［２］複数の表が含まれる１ページの画像データもしくはそれぞれ表を含む複数ページの画像データから複数の表を検出し、該検出した複数の表を、前記１枚のスプレッドシート上に配置する複数の表として処理する
ことを特徴とする［１］に記載のスプレッドシートデータ生成装置。
【００１６】
上記発明では、複数の表が含まれる１ページの画像データ（イメージデータ）もしくはそれぞれ表を含む複数ページの画像データから複数の表を検出し、それら検出した複数の表を１枚スプレッドシート上に配置したスプレッドシートデータを生成する。
【００１７】
［３］基準とする表を決定し、
前記基準とする表に属する罫線と他の表に属する罫線とを、前記組にする
ことを特徴とする［１］または［２］に記載のスプレッドシートデータ生成装置。
【００１８】
上記発明では、基準表に含まれる罫線（基準線）の位置に、他の表の罫線の位置が、変更許容範囲内において修正される。基準表を特定することで処理が容易になる。
【００１９】
［４］前記統合を列方向に行う場合は、列方向の罫線数が最多の表を前記基準の表に決定し、
前記統合を行方向に行う場合は、行方向の罫線数が最多の表を前記基準の表に決定する
ことを特徴とする［３］に記載のスプレッドシートデータ生成装置。
【００２０】
上記発明では、罫線の数が多い表を基準表にすれば、他の表の罫線位置を基準表の罫線に合わせる場合の移動量が少なくて済む。また、基準線が多いので、変更許容範囲内に収まる可能性が高くなる。
【００２１】
［５］基準の表を変更して、前記統合処理を再度行う
ことを特徴とする［３］または［４のいずれか１つ］に記載のスプレッドシートデータ生成装置。
【００２２】
上記発明では、ある基準表では変更許容範囲内に収まらずに位置修正されなかった罫線が、他の表を基準表とすることで変更許容範囲内に収まって位置修正される場合があり、セルの分割数を少なくすることができる。特に、全ての表が基準表になるように基準表を順次切り替えれば、位置修正されずに残る罫線の数をより少なくすることができる。
【００２３】
［６］前記組にされた２つの罫線のうち、前記基準とする表の罫線の罫線位置に、他の表の罫線の罫線位置を合わせる
ことを特徴とする［３］乃至［５］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００２４】
［７］前記組にされた２つの罫線の罫線位置をこれらの中間位置に統合する
ことを特徴とする［１］乃至［５］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００２５】
上記発明では、２つの罫線の位置が互いに歩み寄るので、罫線位置の修正により、一方のセルだけが小さくなってしまう、といったことが防止される。
【００２６】
［８］前記組にされた２つの罫線のうち、一方の罫線の罫線位置を他方の罫線の罫線位置に移動させた場合に該移動させた罫線を枠線に含むセルであってサイズが小さくなるセルの数が少なくなる方の罫線を、移動させる側の罫線にして前記統合を行う
ことを特徴とする［１］乃至［５］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００２７】
上記発明では、罫線の位置修正によってセルサイズが小さくなり難くなる。セル内への文字の格納性に対する影響を少なくできる。
【００２８】
［９］差分の少ない組から優先して前記統合処理を行う
ことを特徴とする［１］乃至［８］のいずれか１つ記載のスプレッドシートデータ生成装置。
【００２９】
上記発明では、より差分の少ない組の罫線が優先的に位置修正されるので、罫線位置の修正量を少なくすることができる。
【００３０】
［１０］セル数が所定の上限数以下に収まるまで前記統合処理を繰り返すと共に、現在の変更許容範囲で前記統合処理を行ってもセル数が減少しなくなったときは前記変更許容範囲を広げる
ことを特徴とする［１］乃至［９］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３１】
上記発明では、セル数が許容範囲に収まるまで、罫線位置の修正が行われる。すなわち、セル数優先で罫線位置が修正される。なお、セル数が減少しなくなったときに変更許容範囲を広げることで、位置修正される罫線が増加し、セル数を減少させることができる。
【００３２】
［１１］行方向の統合処理で使用する変更許容範囲と、列方向の統合処理で使用する変更許容範囲とを個別に設定し得る
ことを特徴とする［１］乃至［１０］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３３】
上記発明では、行方向と列方向のそれぞれに適した変更許容範囲を設定することができる。
【００３４】
［１２］列方向、行方向の順に、または行方向、列方向の順に、両方向について前記統合処理を行う
ことを特徴とする［１］乃至［１１］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３５】
［１３］列方向にのみ前記複数の表の存在する場合は、列方向にのみ前記統合処理を行い、
行方向にのみ前記複数の表が存在する場合は、行方向にのみ前記統合処理を行う
ことを特徴とする［１］乃至［１１］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３６】
上記発明では、統合不要な方向の統合処理は省略される。
【００３７】
［１４］前記変更許容範囲を複数段階に分けて設定する
ことを特徴とする［１］乃至［１３］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３８】
［１５］前記変更許容範囲を、移動させる罫線を枠線に含みかつ該罫線の前記移動させる側にあるセルのサイズに応じて、変更する
ことを特徴とする［１］乃至［１４］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００３９】
上記発明では、罫線を移動させることでセルサイズが小さくなる場合、そのセルのセルサイズに応じて、変更許容範囲が変更される。大きいセルはより大きく罫線位置を修正してもその影響が文字の格納性などに及び難いことによる。
【００４０】
［１６］列方向の罫線の統合処理では、列方向の境界線でスプレッドシートを複数のエリアに分割し、エリア毎に基準の表を設定し、
行方向の罫線の統合処理では、行方向の境界線でスプレッドシートを複数のエリアに分割し、エリア毎に基準の表を設定する
ことを特徴とする［３］乃至［５］のいずれか１つに記載のスプレッドシートデータ生成装置。
【００４１】
上記発明では、エリア毎に、そのエリアに適した基準表により罫線位置が修正される。
【００４２】
［１７］情報処理装置を、
１枚のスプレッドシート上に配置する複数の表の各罫線および罫線位置を取得して表毎に分類する機能と、
前記取得した罫線の中から異なる表に属する２つの罫線の組を選択し、この２つの罫線の罫線位置が相違しかつその差分が所定の変更許容範囲内に収まる場合に、該２つの罫線のいずれか一方または双方の罫線位置を移動させて前記２つの罫線の罫線位置を１つの罫線位置に統合する統合処理を、１組以上について行う機能と、
前記統合処理終了後の罫線位置に従ってセルを設定したスプレッドシートデータを生成する機能と、
を実行させる
ことを特徴とするプログラム。
【発明の効果】
【００４３】
本発明に係るスプレッドシートデータ生成装置およびプログラムによれば、微小セルの発生やセル構成の細分化を回避しつつ複数の表を混在させたスプレッドシートのデータを自動生成することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明のスプレッドシートデータ生成装置としての機能を有する画像処理装置の概略構成を示すブロック図である。
【図２】第１の実施の形態のスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。
【図３】罫線位置修正処理（１）の詳細を示す流れ図である。
【図４】第１の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示す説明図である。
【図５】第１の実施の形態のスプレッドシートデータ生成装置で生成されるスプレッドシートと、従来の方法により生成される細分化されたスプレッドシートとを対比して示す説明図である。
【図６】第２の実施の形態のスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。
【図７】第２の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示す説明図である。
【図８】第３の実施の形態のスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。
【図９】罫線位置修正処理（２）の詳細を示す流れ図である。
【図１０】第３の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示す説明図である。
【図１１】第３の実施の形態のスプレッドシートデータ生成装置で生成されるスプレッドシートと、従来の方法により生成される細分化されたスプレッドシートとを対比して示す説明図である。
【図１２】第４の実施の形態のスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。
【図１３】第４の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示す説明図である。
【図１４】セルのサイズに応じて変更許容範囲を変更する場合の一例を示す説明図である。
【図１５】エリア単位に基準表を設定する場合の一例を示す説明図である。
【図１６】従来方法により生成されたスプレッドシートの一例を示す説明図である。
【発明を実施するための形態】
【００４５】
以下、図面に基づき本発明の実施の形態を説明する。
【００４６】
図１は、本発明のスプレッドシートデータ生成装置としての機能を含む画像処理装置１０の概略構成を示している。画像処理装置１０は、原稿を光学的に読み取って画像データを取得し、この画像データに基づいて原稿の複製画像を記録紙に印刷するコピー機能、読み取った画像データを所定形式のファイルにして保存したり送信したりするスキャン機能、パーソナルコンピュータなどの外部端末から受信した印刷データに係る画像を記録紙上に形成して出力するＰＣプリント機能などを備えた、所謂、複合機として構成されている。
【００４７】
画像処理装置１０は、当該画像処理装置１０の動作を統括制御する制御部としてのＣＰＵ（Central Processing Unit）１１に、バス１２を通じて画像読取部１３と、画像形成部１４と、ＲＯＭ（Read Only Memory）１５と、ＲＡＭ（Random Access Memory）１６と、不揮発メモリ１７と、表示部１８と、操作部１９と、画像処理部２１と、ネットワークＩ／Ｆ部２２と、ハードディスク装置２３とを接続して構成される。
【００４８】
ＲＯＭ１５には各種のプログラムが格納されており、これらのプログラムに従ってＣＰＵ１１が処理を実行することにより画像処理装置１０としての各機能が実現される。たとえば、ＣＰＵ１１は、ＲＯＭ１５に格納された所定のプログラムを実行することでスプレッドシートデータ生成装置としての機能を果たす。
【００４９】
ＲＡＭ１６はＣＰＵ１１がプログラムを実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。
【００５０】
不揮発メモリ１７は、電源をオフしてもその記憶内容が保持される書き換え可能なメモリであり、画像処理装置１０に対して設定された各種の設定値やユーザの認証情報などが記憶される。
【００５１】
画像読取部１３は、原稿を光学的に読み取って画像データを取得する機能を果たす。画像読取部１３は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００５２】
画像形成部１４は、入力される画像データに応じた画像を記録紙に印刷して出力する印刷部としての機能を果たす。画像形成部１４は、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。他の画像形成方式のプリンタであっても構わない。
【００５３】
表示部１８は、液晶ディスプレイ（ＬＣＤ…Liquid Crystal Display）などで構成され、各種の操作画面、設定画面などを表示する機能を果たす。操作部１９は、ユーザからジョブの設定・投入操作など各種の操作を受け付ける機能を果たす。操作部１９は、表示部１８の画面上に設けられて押下された座標位置を検出するタッチパネルのほかテンキーや文字入力キー、スタートキーなどを備えて構成される。
【００５４】
画像処理部２１は、画像の拡大縮小、回転などの処理のほか、印刷データをイメージデータに変換するラスタライズ処理、画像データの圧縮、伸張処理などを行う。
【００５５】
ネットワークＩ／Ｆ部２２は、ＬＡＮなどのネットワークと接続してネットワーク上の端末装置やサーバなどと各種のデータを送受信する機能を果たす。ハードディスク装置２３は、大容量不揮発の記憶装置であり、たとえば、印刷データや画像データ、各種ファイルの保存に使用される。
【００５６】
以後、画像処理装置１０が有するスプレッドシートデータ生成装置としての機能について説明する。なお、画像処理装置１０のハードウェア構成は以後説明する各実施の形態に共通である。
【００５７】
スプレッドシートデータ生成装置としての機能では、複数の表を入力し、これらが混在する１枚のスプレッドシートを生成する。この際、異なる表に属する２つの罫線の罫線位置が所定の変更許容範囲内であれば、これらの一方または双方の罫線を移動させて１つの罫線位置に統合する。これにより、複数の表で互いの罫線位置がずれていても、微小セルの発生やセル構成の細分化を回避してスプレッドシートのデータを生成することができる。
【００５８】
＜第１の実施の形態＞
図２は、本発明の第１の実施の形態に係るスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。まず、ユーザから操作部１９を通じて、行方向（横方向）の罫線に対する変更許容範囲の指定（ステップＳ１０１）および列方向（縦方向）の罫線に対する変更許容範囲の指定（ステップＳ１０２）を受ける。
【００５９】
次に、スプレッドシート形式のファイルへの変換対象となる元の画像データを取得する(ステップＳ１０３)。ステップＳ１０３で取得した画像データには複数の表が含まれるものとする。ここでは、画像読取部１３で１または複数枚の原稿を光学的に読み取って、変換対象の画像データを取得する。
【００６０】
ＣＰＵ１１は、変換対象の画像データを公知の解析方向で解析して複数の表領域を抽出する（ステップＳ１０４）。次に、抽出した複数の表領域の中に行方向の同一範囲に複数の表領域が列方向に並んで存在するか否かを判定する(ステップＳ１０５)。複数の表領域が列方向に並んで存在していない場合は（ステップＳ１０５；Ｎｏ）、ステップＳ１１０へ移行する。
【００６１】
複数の表領域が列方向に並んで存在する場合は(ステップＳ１０５；Ｙｅｓ)、各表の列方向の各罫線および罫線位置を取得し（ステップＳ１０６）、これらの罫線を表毎に分類する(ステップＳ１０７)。
【００６２】
次に、表毎に列方向の罫線の数を合計し、列方向の罫線数が最も多い表を基準の表（基準表）に設定する（ステップＳ１０８）。次に、ステップＳ１０２で指定された列方向の罫線に対する変更許容範囲と基準表とに基づき、列方向について罫線位置修正処理（１）を行う（ステップＳ１０９）。
【００６３】
図３は、ステップＳ１０９および後述するステップＳ１１５で行われる罫線位置修正処理（１）の詳細を示している。この処理の基本的な流れは列方向を処理する場合と行方向を処理する場合で共通である。なお本処理にける罫線は、列方向の処理を行う場合には列方向の罫線を意味し、行方向の処理を行う場合には列方向の罫線を意味する。
【００６４】
まず、基準表の罫線から基準線を選定する（ステップＳ１４１）。列方向を処理する場合には、基準表に含まれる列方向の罫線のうち、最も左側の罫線から１つずつ順に基準線に選択する。なお、行方向を処理する場合は、基準表に含まれる行方向の罫線のうち、最も上の罫線から１つずつ下方へ順に基準線に選択する。
【００６５】
基準表以外の表の罫線の中から、基準線の位置との差分が最小かつ未修正の罫線を抽出する（ステップＳ１４２）。基準線と抽出した罫線とを組にし、この組に含まれる２つの罫線の罫線位置の差分（基準線の罫線位置と該基準線と組みにされた他方の罫線の罫線位置との差分）が変更許容範囲内か否かを調べ（ステップＳ１４３）、変更許容範囲内でなければ（ステップＳ１４３；Ｎｏ）、罫線位置を修正せずにステップＳ１４５へ移行する。
【００６６】
差分が変更許容範囲内の場合は（ステップＳ１４３；Ｙｅｓ）、抽出した罫線の位置を基準線の位置に修正して（ステップＳ１４４）、罫線位置の統合を行う。なお、基準線と抽出した罫線の中間位置（平均位置）に、基準線と抽出した罫線の位置の双方を移動させるように位置修正してもよい。
【００６７】
ステップＳ１４５では、基準表の全ての罫線を基準線として処理終了したか否かを判断し、未終了ならば（ステップＳ１４５；Ｎｏ）、基準表の中で基準線に未選択のもの中から新たな基準線を選択し（ステップＳ１４６）、ステップＳ１４２に戻って処理を継続する。
【００６８】
全ての罫線を基準線として処理終了した場合は(ステップＳ１４５；Ｙｅｓ)、罫線位置修正処理を終了する。
【００６９】
図２に戻って説明を続ける。ステップＳ１１０では、列方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。なお、列方向に複数の表が並ぶ状態でない場合（ステップＳ１０５；Ｎｏ）には、ステップＳ１０６を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【００７０】
次に、ステップＳ１０４で抽出した複数の表領域の中に列方向の同一範囲に複数の表領域が行方向に並んで存在するか否かを判定する(ステップＳ１１１)。複数の表領域が行方向に並んで存在していない場合は（ステップＳ１１１；Ｎｏ）、ステップＳ１１６へ移行する。
【００７１】
複数の表領域が行方向に並んで存在する場合は(ステップＳ１１１；Ｙｅｓ)、各表の行方向の罫線およびその罫線位置を取得し（ステップＳ１１２）、これらの罫線を表毎に分類する(ステップＳ１１３)。
【００７２】
次に、表毎に行方向の罫線の数を合計し、行方向の罫線数が最も多い表を基準の表（基準表）に設定する（ステップＳ１１４）。次に、ステップＳ１０１で指定された行方向の罫線に対する変更許容範囲と基準表とに基づき、行方向について図３の罫線位置修正処理（１）を行う（ステップＳ１１５）。
【００７３】
ステップＳ１１６では、行方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（列方向の各セルの位置および高さ）を設定する。なお、行方向に複数の表が並ぶ状態でない場合（ステップＳ１１１；Ｎｏ）には、ステップＳ１１２を行って行方向の罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【００７４】
その後、各表の罫線にあたるセルの枠を着色するように設定して（ステップＳ１１７）、本処理を終了する。
【００７５】
図４は、第１の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示している。図４の例では表４０が、罫線数が多いため基準表になる。１回目の処理Ｐ１では、基準表４０の左端の罫線４１が基準線となり、表５０の中で基準線４１に最も近い罫線５１が抽出される。基準線４１と罫線５１との差分は変更許容範囲内なので、罫線５１の罫線位置が基準線４１の位置に修正される。
【００７６】
２回目の処理Ｐ２では、基準表４０の左端から２番目の罫線４２が基準線となり、表５０の中で基準線４２に最も近い未処理の罫線５２が抽出される。基準線４２と罫線５２との差分は変更許容範囲内なので、罫線５２の罫線位置が基準線４２の位置に修正される。
【００７７】
３回目の処理Ｐ３では、基準表４０の左端から３番目の罫線４３が基準線となり、表５０の中で基準線４３に最も近い未処理の罫線５３が抽出される。基準線４３と罫線５３との差分は変更許容範囲を超えているので、罫線位置の修正は行われない。
【００７８】
４回目の処理Ｐ４では、基準表４０の左端から４番目の罫線４４が基準線となり、表５０の中で基準線４４に最も近い未処理の罫線５３が抽出される。基準線４４と罫線５３との差分は変更許容範囲内なので、罫線５３の罫線位置が基準線４４の位置に修正される。これにて、処理は終了する。
【００７９】
図５は、罫線位置を修正しない従来の方法により生成されたスプレッドシート（図５上側のシート）と、本発明の第１の実施の形態で生成されるスプレッドシート（図５下側のシート）とを対比して示している。罫線位置を修正しないスプレッドシート（上側のシート）では、微小な幅のセルが必要となり、セルの分割数が多い。これに対し、第１の実施の形態で生成されたスプレッドシート（下側のシート）は、微小な幅のセルが不要となり、セルの分割数も少なく抑えられている。
【００８０】
＜第２の実施の形態＞
図６は、第２の実施の形態に係わるスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。第１の実施の形態では、変更許容範囲を優先し、この変更許容範囲内に収まる場合だけ罫線位置を修正したが、第２の実施の形態では、設定された許容範囲にセル数が収まることを優先し、必要に応じて、変更許容範囲を拡大するようになっている。
【００８１】
まず、ＣＰＵ１１は、ユーザから操作部１９を通じて、行方向の罫線に対する変更許容範囲の指定（ステップＳ２０１）および列方向の罫線に対する変更許容範囲の指定（ステップＳ２０２）を受ける。さらに、行方向のセル数の許容範囲(上限数)の指定(ステップＳ２０３)、列方向のセル数の許容範囲の指定（ステップＳ２０４）を受ける。
【００８２】
次に、スプレッドシート形式のファイルへの変換対象となる元の画像データを取得する(ステップＳ２０５)。ＣＰＵ１１は、変換対象の画像データを解析して複数の表領域を抽出する（ステップＳ２０６）。次に、抽出した複数の表領域の中に行方向の同一範囲に複数の表領域が列方向に並んで存在するか否かを判定し(ステップＳ２０７)、複数の表領域が列方向に並んで存在していない場合は（ステップＳ２０７；Ｎｏ）、ステップＳ２１４へ移行する。
【００８３】
複数の表領域が列方向に並んで存在する場合は(ステップＳ２０７；Ｙｅｓ)、各表の列方向の各罫線および罫線位置を取得し（ステップＳ２０８）、これらの罫線を表毎に分類する(ステップＳ２０９)。
【００８４】
次に、表毎に列方向の罫線の数を合計し、列方向の罫線数が最も多い表を基準表に設定する（ステップＳ２１０）。ステップＳ２０２で指定された列方向の罫線に対する変更許容範囲と基準表とに基づき、列方向について図３の罫線位置修正処理（１）を行う（ステップＳ２１１）。そして、修正後の罫線位置に従ってセルを設定した場合の列方向のセル数がステップＳ２０４で指定された列方向のセル数の許容範囲内か否かを判定する（ステップＳ２１２）。
【００８５】
許容範囲内でなければ（ステップＳ２１２；Ｎｏ）、現在の列方向の変更許容範囲を所定量（たとえば、１ミリ）拡大して(ステップＳ２１３)、ステップＳ２１０へ移行し、再度、罫線位置の修正処理を行う。変更許容範囲を拡大することで、前回は範囲外として除外された罫線が位置修正される場合がある。
【００８６】
列方向のセル数が許容範囲内に収まる場合は（ステップＳ２１２；Ｙｅｓ）、列方向の修正後の罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する（ステップＳ２１４）。なお、列方向に複数の表が並ぶ状態でない場合（ステップＳ２０７；Ｎｏ）には、ステップＳ２０８を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【００８７】
次に、ステップＳ２０６で抽出した複数の表領域の中に列方向の同一範囲に複数の表領域が行方向に並んで存在するか否かを判定する(ステップＳ２１５)。複数の表領域が行方向に並んで存在しない場合は（ステップＳ２１５；Ｎｏ）、ステップＳ２２２へ移行する。
【００８８】
複数の表領域が行方向に並んで存在する場合は(ステップＳ２１５；Ｙｅｓ)、各表の行方向の各罫線および罫線位置を取得し（ステップＳ２１６）、これらの罫線を表毎に分類する(ステップＳ２１７)。
【００８９】
次に、表毎に行方向の罫線の数を合計し、行方向の罫線数が最も多い表を基準表に設定する（ステップＳ２１８）。ステップＳ２０１で指定された行方向の罫線に対する変更許容範囲と基準表とに基づき、行方向について図３の罫線位置修正処理（１）を行う（ステップＳ２１９）。そして、行方向の修正後の罫線位置に従ってセルを設定した場合の行方向のセル数がステップＳ２０３で指定された行方向のセル数の許容範囲内か否かを判定する（ステップＳ２２０）。
【００９０】
許容範囲内でなければ（ステップＳ２２０；Ｎｏ）、現在の行方向の変更許容範囲を所定量（たとえば、１ミリ）拡大して(ステップＳ２２１)、ステップＳ２１８へ移行し、再度、罫線位置の修正処理を行う。
【００９１】
行方向のセル数の許容範囲内に収まる場合は（ステップＳ２２０；Ｙｅｓ）、行方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（列方向の各セルの位置および高さ）を設定する(ステップＳ２２２)。なお、行方向に複数の表が並ぶ状態でない場合（ステップＳ２１５；Ｎｏ）には、ステップＳ２１６を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（列方向の各セルの位置および幅）を設定する。次に、各表の罫線にあたるセルの枠を着色するように設定して（ステップＳ２２３）、本処理を終了する。
【００９２】
図７は、罫線位置修正前の状態Ｐ１１と、第２の実施の形態のスプレッドシートデータ生成装置が変更許容範囲Ａで罫線位置を修正した状態Ｐ１２と、変更許容範囲を変更許容範囲Ｂに拡張して罫線位置を修正した後の状態Ｐ１３とを示している。罫線位置修正前の状態Ｐ１１では、列方向のセル数は６になる。変更許容範囲Ａで罫線位置を修正した場合、罫線６４は基準線６５との差分が変更許容範囲Ａを超えるため位置修正されずに残る。
【００９３】
この状態で列方向のセル数が、設定された許容範囲内でなければ、列方向に対する変更許容範囲は変更許容範囲Ｂに拡大される。その結果、罫線６４と基準線６５との差分が変更許容範囲Ｂに収まり、修正後の状態Ｐ１３に示すように、罫線６４の罫線位置が修正される。列方向のセル数は３になって許容範囲内に収まって処理終了となる。
【００９４】
＜第３の実施の形態＞
第１、第２の実施の形態では、基準表を定め、基準表に含まれる各罫線を順に基準線に設定して罫線位置の修正を行ったが、第３の実施の形態では、異なる表から１つずつ選択した２つの罫線の組を設定し、選択した２つの罫線の罫線位置の差分が最も少ない組み合わせから優先して罫線位置の修正を行うようになっている。
【００９５】
図８は、第３の実施の形態に係わるスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。まず、ユーザから操作部１９を通じて、行方向の罫線に対する変更許容範囲の指定（ステップＳ３０１）および列方向の罫線に対する変更許容範囲の指定（ステップＳ３０２）を受ける。
【００９６】
次に、ステップＳ１０３と同様に、スプレッドシート形式のファイルへの変換対象となる元の画像データを取得する(ステップＳ３０３)。ＣＰＵ１１は、変換対象の画像データを解析して複数の表領域を抽出する（ステップＳ３０４）。抽出した複数の表領域の中に行方向の同一範囲に複数の表領域が列方向に並んで存在するか否かを判定する(ステップＳ３０５)。複数の表領域が列方向に並んで存在していない場合は（ステップＳ３０５；Ｎｏ）、ステップＳ３０９へ移行する。
【００９７】
複数の表領域が列方向に並んで存在する場合は(ステップＳ３０５；Ｙｅｓ)、各表の列方向の各罫線および罫線位置を取得し（ステップＳ３０６）、これらの罫線を表毎に分類する(ステップＳ３０７)。次に、ステップＳ３０２で指定された列方向の罫線に対する変更許容範囲に基づき、列方向について罫線位置修正処理（２）を行う（ステップＳ３０８）。
【００９８】
図９は、ステップＳ３０８および後述するステップＳ３１３で行われる罫線位置修正処理（２）の詳細を示している。この処理の基本的な流れは列方向を処理する場合と行方向を処理する場合とで共通である。なお本処理にける罫線は、列方向の処理を行う場合には列方向の罫線を意味し、行方向の処理を行う場合には列方向の罫線を意味する。
【００９９】
まず、下記条件に当てはまる罫線の組みの中で、罫線位置の差分が最小の組を抽出する（ステップＳ３４１）。
条件１：互いに異なる表に属する２つの罫線である。
条件２：少なくとも片方は罫線位置が未修正である。
【０１００】
該当する罫線の組が抽出されなかった場合は(ステップＳ３４２；Ｎｏ)、本処理を終了する。
【０１０１】
該当する罫線の組が抽出された場合は（ステップＳ３４２；Ｙｅｓ）、その組に属する２つの罫線の罫線位置の差分が変更許容範囲内か否かを調べる（ステップＳ３４３）。変更許容範囲内でなければ（ステップＳ３４３；Ｎｏ）、本処理を終了する。すなわち、変更許容範囲内に無い場合は、罫線位置の差分がそれ以上小さい組は存在しないため、罫線位置修正処理をこの時点で終了する。
【０１０２】
変更許容範囲内であれば（ステップＳ３４３；Ｙｅｓ）、その２つの罫線の双方が罫線位置未修正（修正履歴がない）か否かを調べる（ステップＳ３４４）。両方とも罫線位置未修正であれば（ステップＳ３４４；Ｙｅｓ）、罫線位置を修正した場合にセルサイズが小さくなるセルの数が最小となる罫線を選択し、該罫線の位置を、他方の罫線の罫線位置に修正する（ステップＳ３４５）。そして、両罫線の修正履歴を修正済み（修正あり）に設定して（ステップＳ３４６）、ステップＳ３４１へ戻り処理を継続するする。移動させる罫線をセルサイズが小さくなるセル数が少なくなるように選択して罫線位置を修正することで、セル内へ表示する文字への影響を最小にすることができる。
【０１０３】
片方のみ罫線位置未修正であれば（ステップＳ３４４；Ｎｏ）、修正履歴のない罫線の罫線位置を、他方の罫線の罫線位置に修正し（ステップＳ３４７）、その修正した罫線の修正履歴を修正済みに設定して（ステップＳ３４８）、ステップＳ３４１へ戻り処理を継続する。
【０１０４】
図８に戻って説明を続ける。ステップＳ３０９では、列方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。なお、列方向に複数の表が並ぶ状態でない場合（ステップＳ３０５；Ｎｏ）には、ステップＳ３０６を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【０１０５】
次に、ステップＳ３０４で抽出した複数の表領域の中に列方向の同一範囲に複数の表領域が行方向に並んで存在するか否かを判定する(ステップＳ３１０)。複数の表領域が行方向に並んで存在していない場合は（ステップＳ３１０；Ｎｏ）、ステップＳ３１４へ移行する。
【０１０６】
複数の表領域が行方向に並んで存在する場合は(ステップＳ３１０；Ｙｅｓ)、各表の行方向の各罫線および罫線位置を取得し（ステップＳ３１１）、これらの罫線を表毎に分類する(ステップＳ３１２)。
【０１０７】
次にステップＳ３０１で指定された行方向の罫線に対する変更許容範囲に基づき、行方向について罫線位置修正処理（２）を行う（ステップＳ３１３）。
【０１０８】
ステップＳ３１４では、行方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（列方向の各セルの位置および高さ）を設定する。なお、行方向に複数の表が並ぶ状態でない場合（ステップＳ３１０；Ｎｏ）には、ステップＳ３１１を行って行方向の罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【０１０９】
その後、各表の罫線にあたるセルの枠を着色するように設定して（ステップＳ３１５）、本処理を終了する。
【０１１０】
図１０は、第３の実施の形態のスプレッドシートデータ生成装置による罫線位置の修正例を示している。１回目の処理Ｐ２１では、表７０の罫線７２と下側の表８０の罫線８２との組が、図９のステップＳ３４１において抽出される。罫線７２と罫線８２は共に修正履歴なしとする。この場合、罫線７２を罫線８２の位置に修正した方が、セルサイズが小さくなるセル数が少ない（３個になる）ため、罫線７２が罫線８２の位置に修正される。そして罫線７２、８２共に修正履歴ありに設定する。
【０１１１】
２回目の処理Ｐ２２では、表７０の罫線７１と下側の表８０の罫線８１との組が、図９のステップＳ３４１において抽出される。罫線７１と罫線８１は共に修正履歴なしとする。この場合、罫線８１を罫線７１の位置に修正した方が、セルサイズが小さくなるセル数が少ない（０個）ため、罫線８１が罫線７１の位置に修正される。そして罫線７１、８１共に修正履歴ありに設定する。
【０１１２】
３回目の処理Ｐ２３では、表７０の罫線７４と下側の表８０の罫線８３との組が、図９のステップＳ３４１において抽出される。罫線７４と罫線８３は共に修正履歴なしとする。この場合、罫線８３を罫線７４の位置に修正した方が、セルサイズが小さくなるセル数が少ない（０個）ため、罫線８３が罫線７４の位置に修正される。そして罫線７４、８３共に修正履歴ありに設定する。
【０１１３】
４回目の処理Ｐ２４では、表７０の罫線７３と下側の表８０の罫線８２との組が、図９のステップＳ３４１において抽出される。罫線８２は修正履歴あり、罫線７３は修正履歴なしである。この場合、罫線８２と罫線７３の差分が変更許容範囲を超えるので、修正しない。そして、変更許容範囲内の組み合わせはこれ以上無いため処理を終了する。
【０１１４】
図１１は、罫線位置を修正しない従来の方法により生成されたスプレッドシート（図１１上側のシート）と、本発明の第３の実施の形態で生成されるスプレッドシート（図１１下側のシート）とを対比して示す説明図である。罫線位置を修正しないスプレッドシート（上側のシート）では、微小の幅のセルが必要となりセルの分割数が多い。これに対し、第３の実施の形態で生成されたスプレッドシート（下側のシート）、微小の幅のセルが不要となり、セルの分割数も少なく抑えられている。また、修正によりセルサイズが小さくなるセルの数は少なく（表７０の罫線７２と罫線７３の間の３個のセルのみに）抑えられている。
【０１１５】
＜第４の実施の形態＞
図１２は、第４の実施の形態に係わるスプレッドシートデータ生成装置が行うスプレッドシートデータ生成処理を示す流れ図である。第４の実施の形態では、基準表を順次入れ替えるようになっている。
【０１１６】
まず、ユーザから操作部１９を通じて、行方向の罫線に対する変更許容範囲の指定（ステップＳ４０１）および列方向の罫線に対する変更許容範囲の指定（ステップＳ４０２）を受ける。
【０１１７】
次に、スプレッドシート形式のファイルへの変換対象となる元の画像データを取得する(ステップＳ４０３)。ＣＰＵ１１は、変換対象の画像データを解析して複数の表領域を抽出する（ステップＳ４０４）。次に、抽出した複数の表領域の中に行方向の同一範囲に複数の表領域が列方向に並んで存在するか否かを判定する(ステップＳ４０５)。複数の表領域が列方向に並んで存在していない場合は（ステップＳ４０５；Ｎｏ）、ステップＳ４１２へ移行する。
【０１１８】
複数の表領域が列方向に並んで存在する場合は(ステップＳ４０５；Ｙｅｓ)、各表の列方向の各罫線および罫線位置を取得し（ステップＳ４０６）、これらの罫線を表毎に分類する(ステップＳ４０７)。
【０１１９】
次に、表毎に列方向の罫線の数を合計し、列方向の罫線数が最も多い表を基準表に設定する（ステップＳ４０８）。ステップＳ４０２で指定された列方向の罫線に対する変更許容範囲と基準表とに基づき、列方向について図３と同じ罫線位置修正処理（１）を行う（ステップＳ４０９）。
【０１２０】
列方向の全ての表を基準表として罫線位置修正処理が完了しているかを判断し（ステップＳ４１０）、完了していない場合は（ステップＳ４１０；Ｎｏ）、未だ基準表に設定していない別の表を基準表に設定して（ステップＳ４１１）、ステップＳ４０９へ戻り罫線位置修正処理（１）を行う。
【０１２１】
列方向の全ての表を基準表として罫線位置修正処理が完了した場合は（ステップＳ４１０；Ｙｅｓ）、列方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する（ステップＳ４１２）。ステップＳ４０９では、列方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。なお、列方向に複数の表が並ぶ状態でない場合（ステップＳ４０５；Ｎｏ）には、ステップＳ４０６を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（行方向の各セルの位置および幅）を設定する。
【０１２２】
次に、ステップＳ４０４で抽出した複数の表領域の中に列方向の同一範囲に複数の表領域が行方向に並んで存在するか否かを判定する(ステップＳ４１３)。複数の表領域が行方向に並んで存在していない場合は（ステップＳ４１３；Ｎｏ）、ステップＳ４２０へ移行する。
【０１２３】
複数の表領域が行方向に並んで存在する場合は(ステップＳ４１３；Ｙｅｓ)、各表の行方向の各罫線および罫線位置を取得し（ステップＳ４１４）、これらの罫線を表毎に分類する(ステップＳ４１５)。
【０１２４】
次に、表毎に行方向の罫線の数を合計し、行方向の罫線数が最も多い表を基準表に設定する（ステップＳ４１６）。ステップＳ４０１で指定された行方向の罫線に対する変更許容範囲と基準表とに基づき、行方向について図３の罫線位置修正処理（１）を行う（ステップＳ４１７）。
【０１２５】
行方向の全ての表を基準表として罫線位置修正処理が完了しているかを判断し（ステップＳ４１８）、完了していない場合は（ステップＳ４１８；Ｎｏ）、行方向の処理において未だ基準表に設定していない別の表を基準表に設定して（ステップＳ４１９）、ステップＳ４１７へ戻り罫線位置修正処理（１）を行う。
【０１２６】
行方向の全ての表を基準表として罫線位置修正処理が完了した場合は（ステップＳ４１８；Ｙｅｓ）、行方向の修正後の罫線位置に従い、生成中のスプレッドシートのセル（列方向の各セルの位置および高さ）を設定する（ステップＳ４２０）。なお、行方向に複数の表が並ぶ状態でない場合（ステップＳ４１３；Ｎｏ）には、ステップＳ４１４を行って罫線位置を認識し、その罫線位置に従って、生成中のスプレッドシートのセル（列方向の各セルの位置および幅）を設定する。
【０１２７】
次に、各表の罫線にあたるセルの枠を着色するように設定して（ステップＳ４２１）、本処理を終了する。
【０１２８】
図１３は、基準表を変更することで、罫線位置の修正がより進行する様子を示している。図１３の状態Ｐ３１では、表９０が基準表であり、表１００の罫線１０１は、表９０の罫線９１を基準線とする場合も罫線９２を基準線とする場合も罫線間の差分が変更許容範囲を超えるため罫線位置が修正されずに残る。同様に表１１０の罫線１１１についても、表９０の罫線９１と罫線９２のいずれを基準線とする場合も罫線間の差分が変更許容範囲を超えるため罫線位置が修正されずに残る。
【０１２９】
次に、表１００を基準表に選択した状態Ｐ３２では、表１００の罫線１０１を基準線としたとき、表１１０の罫線１１１は、基準線１０１との差分が変更許容範囲となり、罫線１０１の位置に修正される。このように、基準表を切り替えることで、修正されないまま残ってしまう罫線を少なくすることができる。
【０１３０】
このように本発明によれば、使用用途に適したセル設定のスプレッドシートデータ（スプレッドシート形式ファイル）を作成することができる。特に編集を想定しているような使用用途の場合には、元原稿の表のサイズやレイアウトの忠実な再現性の優先度を下げ、元原稿との微小のずれを許容することで、再利用性を重視したスプレッドシート形式ファイルを作成することができる。一方、使用用途によってオリジナル原稿を忠実に表現する必要があり、位置変更の許容が不可の場合は、変更許容範囲を小さく設定することでセルを細かく分離して忠実に表現することができる。すなわち、設定する変更許容範囲の大きさ次第で、編集に適するものでも厳密さを優先するものでも柔軟に対応でき、使用用途に適したスプレッドシートデータを生成することができる。
【０１３１】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１３２】
実施の形態では、画像処理装置１０を例に説明したが、これに限定されず、各実施の形態で示したスプレッドシートデータ生成装置としての機能を備える装置であればよい。また、本発明は、パーソナルコンピュータなどの情報処理装置を各実施の形態で示したスプレッドシートデータ生成装置として機能させるためのプログラムであってもよい。
【０１３３】
実施の形態では、組にした２つの罫線の一方を他方の罫線の位置に移動させることで罫線位置を修正する、もしくは、２つの罫線の中間（平均）位置に両罫線を移動させる場合を例示したが、罫線の移動はこれに限定されるものではない。たとえば、表が多数あり、１つの基準線に対して、差分が変更許容範囲内となる罫線の組が複数存在する場合、これら複数組に係るすべての罫線位置の平均を修正後の罫線位置としてもよい。
【０１３４】
実施の形態では、画像読取部１３で原稿を読み取って得た画像データ（イメージデータ）に含まれる表からスプレッドシートデータを生成したが、たとえば、ファイル形式で既に存在する２つのスプレッドシートを１つに纏めるような場合にも本発明は適用される。
【０１３５】
また、変更許容範囲は複数段階に分けて設定されてもよい。たとえば、画像読取部１３で同じレイアウトの表原稿を複数枚読み取る場合には、読み取ったイメージデータ上では表の位置が僅かにずれる場合がある。このような場合、この微小なズレに対応した変更許容範囲（たとえば、１ｍｍ）を設定して罫線位置の修正を行い、次に、実際のセルのズレを補うための変更許容範囲（たとえば５ｍｍ）を設定して罫線位置の修正を行う。このとき、たとえば、位置修正する罫線の数に制限を設ける。このようにすれば、微小なズレはすべて解消しつつ、大きく罫線位置の修正が行われる箇所を所定数以下に制限する、といったことができる。
【０１３６】
また、変更許容範囲は、セルの大きさやセル数に応じて変更されてもよい。たとえば、移動対象の罫線を枠線に含みかつ該罫線の移動方向側にあるセルのサイズに応じて、変更許容範囲を変更するようにしてもよい。たとえば、ある罫線を右方向に移動させる場合には、その罫線を枠線の１つに含むセルであって該罫線の右側にあるセルのサイズに応じて変更許容範囲の大きさを変更する。上記セルが大きいほど、変更許容範囲を大きくするようにすればよい。つまり、罫線を移動させることで小さくなるセルのサイズ（罫線移動方向にあるセルのサイズ）が大きいほど変更許容範囲を大きくし、罫線を移動させることで小さくなるセルのサイズが小さいほど変更許容範囲を小さくする。
【０１３７】
図１４（ａ）の例では、表１２０の罫線１２２と表１３０の罫線１３２との差分は変更許容範囲Ａを超えるので罫線位置を修正できないが、同図（ｂ）のように、罫線１３２の移動方向（本例では左側）のセルが大きい場合には、該セルのサイズに応じて変更許容範囲が変更許容範囲Ｂのように拡大する。これにより、罫線１３２と罫線１２２との位置の差分が変更許容範囲Ｂに収まり、罫線１３２の位置が罫線１２２の位置に修正される。
【０１３８】
このほか、変更許容範囲はセルサイズに対するセル内の文字数や余白サイズに応じて変更するようにしてもよい。すなわち、セル内の文字に対してセルサイズの余裕(余白)が大きいほど変更許容範囲を大きくする。また文字をセル内に収めることのできる範囲に、変更許容範囲を制限するようにしてよい。
【０１３９】
実施の形態では、スプレッドシートの全範囲に対して基準表を１つ設定するようにしたが、エリア別に基準表を設けてもよい。たとえば、図１５に示すように、表１４０と表１５０が列方向に並ぶエリアＡでは表１４０を基準表とし、表１６０と表１５０とが列方向に並ぶエリアＢでは表１６０を基準表とする、などとしてもよい。最も罫線の多い表を基準表とする場合には、エリア毎の罫線数によって、エリア毎に基準表を決定すればよい。
【符号の説明】
【０１４０】
１０…画像処理装置
１１…ＣＰＵ
１２…バス
１３…画像読取部
１４…画像形成部
１５…ＲＯＭ
１６…ＲＡＭ
１７…不揮発メモリ
１８…表示部
１９…操作部
２１…画像処理部
２２…ネットワークＩ／Ｆ部
２３…ハードディスク装置
４０、５０、７０、８０…表
４１、４２、４３、４４…罫線
５１、５２、５３、…罫線
６４、６５…罫線
７１、７２、７３、７４…罫線
８１、８２、８３…罫線
９０、１００、１１０、１２０、１３０…表
９１、９２、１０１、１１１、１２１、１２２、１３１、１３２…罫線
１４０、１５０、１６０…表
【図１】
0005541202.tif 000002
【図２】
0005541202.tif 000003
【図３】
0005541202.tif 000004
【図６】
0005541202.tif 000005
【図８】
0005541202.tif 000006
【図９】
0005541202.tif 000007
【図１２】
0005541202.tif 000008
【図４】
0005541202.tif 000009
【図５】
0005541202.tif 000010
【図７】
0005541202.tif 000011
【図１０】
0005541202.tif 000012
【図１１】
0005541202.tif 000013
【図１３】
0005541202.tif 000014
【図１４】
0005541202.tif 000015
【図１５】
0005541202.tif 000016
【図１６】
0005541202.tif 000017