(57)【要約】【課題】表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる情報処理装置及びプログラムを提供する。【解決手段】画像形成装置１０Ａは、セルが行列状に配置された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する検索部３４と、検索部３４により検索された複数のセルの分布状態に基づいて、表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する特定部３６と、特定部３６により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する抽出部３８と、を備える。【選択図】図２
2020123233.tif 000002
【特許請求の範囲】
【請求項１】
セルが行列状に配置された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する検索部と、
前記検索部により検索された複数のセルの分布状態に基づいて、前記表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する特定部と、
前記特定部により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する抽出部と、
を備えた情報処理装置。
【請求項２】
前記特定部は、
前記表におけるヘッダ範囲となり得る行及び列の全ての組み合わせから、前記検索部により検索された複数のセルを含む組み合わせとして表される第１ヘッダ範囲候補を特定し、
特定した第１ヘッダ範囲候補から、前記検索部により検索された複数のセルのいずれかである第１セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される第２ヘッダ範囲候補を特定し、
特定した第２ヘッダ範囲候補から、セル数が最小となる第３ヘッダ範囲候補が１つの組み合わせとして特定された場合に、前記第３ヘッダ範囲候補を前記ヘッダ範囲とする請求項１に記載の情報処理装置。
【請求項３】
前記特定部は、前記第３ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合に、前記二次元表の第３ヘッダ範囲候補を前記ヘッダ範囲とする請求項２に記載の情報処理装置。
【請求項４】
前記第１セルは、２つ以上のセルが結合された結合セルである請求項２又は３に記載の情報処理装置。
【請求項５】
前記特定部は、前記表から、前記表の予め定められた基準セル及び前記基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において前記検索部により検索された複数のセルを含まない矩形領域のうち、セル数が最大となる矩形領域を除いた範囲を前記ヘッダ範囲として特定する請求項１に記載の情報処理装置。
【請求項６】
前記基準セルは、前記表の右下端に位置するセルであり、
前記対角セルは、前記右下端に位置するセルの左上の対角に位置するセルである請求項５に記載の情報処理装置。
【請求項７】
前記検索部により検索された複数のセルは、前記ヘッダ範囲の行方向及び列方向の各々に分布している請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記検索部により検索された複数のセルの数は、前記ヘッダ範囲に含まれるキーセルの数よりも少ない請求項７に記載の情報処理装置。
【請求項９】
コンピュータを、請求項１〜８のいずれか１項に記載の情報処理装置が備える各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、帳票のフォーマットをインポートするシステムが記載されている。このシステムは、インポートする帳票の各ブロックにおいてブロック抽出ポリシに登録されているタイトルと属性が合致する候補ブロックを抽出し、抽出した候補ブロックを合致率と共に表示部に表示する。このシステムは、表示したブロック及び合致率の中からユーザが選択した候補ブロックの入力を受け付け、受け付けた候補ブロックに基づいて、インポートする帳票の定義ファイルのひな型ブロック定義を作成したブロック定義を元に定義ファイルをブロックライブラリに出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−９１０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、表に含まれる全てのキーについての値を抽出したい場合、全てのキーを含むヘッダ範囲を特定する必要があるが、この場合、全てのキーとヘッダ範囲との関係を予め定義しなければならない。しかし、表に含まれる全てのキーについて定義することは容易ではない。
【０００５】
本発明は、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１態様に係る情報処理装置は、セルが行列状に配置された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する検索部と、前記検索部により検索された複数のセルの分布状態に基づいて、前記表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する特定部と、前記特定部により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する抽出部と、を備えている。
【０００７】
また、第２態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記特定部が、前記表におけるヘッダ範囲となり得る行及び列の全ての組み合わせから、前記検索部により検索された複数のセルを含む組み合わせとして表される第１ヘッダ範囲候補を特定し、特定した第１ヘッダ範囲候補から、前記検索部により検索された複数のセルのいずれかである第１セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される第２ヘッダ範囲候補を特定し、特定した第２ヘッダ範囲候補から、セル数が最小となる第３ヘッダ範囲候補が１つの組み合わせとして特定された場合に、前記第３ヘッダ範囲候補を前記ヘッダ範囲とする。
【０００８】
また、第３態様に係る情報処理装置は、第２態様に係る情報処理装置において、前記特定部が、前記第３ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合に、前記二次元表の第３ヘッダ範囲候補を前記ヘッダ範囲とする。
【０００９】
また、第４態様に係る情報処理装置は、第２態様又は第３態様に係る情報処理装置において、前記第１セルが、２つ以上のセルが結合された結合セルとされている。
【００１０】
また、第５態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記特定部が、前記表から、前記表の予め定められた基準セル及び前記基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において前記検索部により検索された複数のセルを含まない矩形領域のうち、セル数が最大となる矩形領域を除いた範囲を前記ヘッダ範囲として特定する。
【００１１】
また、第６態様に係る情報処理装置は、第５態様に係る情報処理装置において、前記基準セルが、前記表の右下端に位置するセルとされ、前記対角セルが、前記右下端に位置するセルの左上の対角に位置するセルとされている。
【００１２】
また、第７態様に係る情報処理装置は、第１態様〜第６態様のいずれか１の態様に係る情報処理装置において、前記検索部により検索された複数のセルが、前記ヘッダ範囲の行方向及び列方向の各々に分布している。
【００１３】
また、第８態様に係る情報処理装置は、第７態様に係る情報処理装置において、前記検索部により検索された複数のセルの数が、前記ヘッダ範囲に含まれるキーセルの数よりも少ない。
【００１４】
更に、上記目的を達成するために、第９態様に係るプログラムは、コンピュータを、第１態様〜第８態様のいずれか１の態様に係る情報処理装置が備える各部として機能させる。
【発明の効果】
【００１５】
第１態様及び第９態様によれば、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる、という効果を有する。
【００１６】
第２態様によれば、表に含まれる全てのキーについて定義することなく、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲を特定することができる、という効果を有する。
【００１７】
第３態様によれば、二次元表のヘッダ範囲を優先的に特定することができる、という効果を有する。
【００１８】
第４態様によれば、結合セルを含む場合であっても、表に含まれる全てのキーについて定義することなく、全てのキーを含むヘッダ範囲を特定することができる、という効果を有する。
【００１９】
第５態様によれば、表に含まれる全てのキーについて定義することなく、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲を特定することができる、という効果を有する。
【００２０】
第６態様によれば、ヘッダ範囲を左上に有する一般的な表に対して、複数のセルを含まない矩形領域を得ることができる、という効果を有する。
【００２１】
第７態様によれば、二次元表におけるヘッダ範囲を特定することができる、という効果を有する。
【００２２】
第８態様によれば、ヘッダ範囲に含まれるキーセルの数よりも少ないキーでヘッダ範囲を特定することができる、という効果を有する。
【図面の簡単な説明】
【００２３】
【図１】第１の実施形態に係る画像形成装置の電気的な構成の一例を示すブロック図である。
【図２】第１の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図３】第１の実施形態に係る抽出処理プログラムによる処理の流れの一例を示すフローチャートである。
【図４】実施形態に係る入力表の一例を示す図である。
【図５】第１の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【図６】第１の実施形態に係るヘッダ範囲となり得る行及び列の組み合わせの一例を示す図である。
【図７】第１の実施形態に係る第１ヘッダ範囲候補の一例を示す図である。
【図８】第１の実施形態に係る第２ヘッダ範囲候補の一例を示す図である。
【図９】第１の実施形態に係る第３ヘッダ範囲候補の一例を示す図である。
【図１０】第１の実施形態に係る一元表及び二次元表の第３ヘッダ範囲候補の一例を示す図である。
【図１１】第１の実施形態に係るキーセル値抽出処理の説明に供する図である。
【図１２】第２の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図１３】第２の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【図１４】第２の実施形態に係るヘッダ範囲特定処理の説明に供する図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【００２５】
[第１の実施形態]
図１は、第１の実施形態に係る画像形成装置１０Ａの電気的な構成の一例を示すブロック図である。
図１に示すように、本実施形態に係る画像形成装置１０Ａは、制御部１２と、記憶部１４と、表示部１６と、操作部１８と、画像形成部２０と、原稿読取部２２と、通信部２４と、を備えている。
【００２６】
なお、画像形成装置１０Ａは、情報処理装置の一例である。この情報処理装置には、画像形成装置１０Ａ以外に、例えば、パーソナルコンピュータ（ＰＣ：Personal Computer）や、スマートフォン、タブレット端末等を適用してもよい。
【００２７】
制御部１２は、ＣＰＵ（Central Processing Unit）１２Ａ、ＲＯＭ（Read Only Memory）１２Ｂ、ＲＡＭ（Random Access Memory）１２Ｃ、及び入出力インターフェース（Ｉ／Ｏ）１２Ｄを備えており、これら各部がバスを介して各々接続されている。
【００２８】
Ｉ／Ｏ１２Ｄには、記憶部１４と、表示部１６と、操作部１８と、画像形成部２０と、原稿読取部２２と、通信部２４と、を含む各機能部が接続されている。これらの各機能部は、Ｉ／Ｏ１２Ｄを介して、ＣＰＵ１２Ａと相互に通信可能とされる。
【００２９】
制御部１２は、画像形成装置１０Ａの一部の動作を制御するサブ制御部として構成されてもよいし、画像形成装置１０Ａの全体の動作を制御するメイン制御部の一部として構成されてもよい。制御部１２の各ブロックの一部又は全部には、例えば、ＬＳＩ（Large Scale Integration）等の集積回路又はＩＣ（Integrated Circuit）チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御部１２の集積化には、ＬＳＩに限らず、専用回路又は汎用プロセッサを用いてもよい。
【００３０】
記憶部１４としては、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ等が用いられる。記憶部１４には、本実施形態に係る表データの抽出機能を実現するための抽出処理プログラム１４Ａが記憶される。なお、この抽出処理プログラム１４Ａは、ＲＯＭ１２Ｂに記憶されていてもよい。
【００３１】
抽出処理プログラム１４Ａは、例えば、画像形成装置１０Ａに予めインストールされていてもよい。抽出処理プログラム１４Ａは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、画像形成装置１０Ａに適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、ＣＤ-ＲＯＭ（Compact Disc Read Only Memory）、光磁気ディスク、ＨＤＤ、ＤＶＤ-ＲＯＭ（Digital Versatile Disc Read Only Memory）、フラッシュメモリ、メモリカード等が想定される。
【００３２】
表示部１６には、例えば、液晶ディスプレイ（ＬＣＤ:Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイ等が用いられる。表示部１６は、タッチパネルを一体的に有している。操作部１８には、テンキーやスタートキー等の各種の操作キーが設けられている。表示部１６及び操作部１８は、画像形成装置１０Ａのユーザから各種の指示を受け付ける。この各種の指示には、例えば、原稿の読み取りを開始させる指示や、原稿のコピーを開始させる指示等が含まれる。表示部１６は、ユーザから受け付けた指示に応じて実行された処理の結果や、処理に対する通知等の各種の情報を表示する。
【００３３】
原稿読取部２２は、画像形成装置１０Ａの上部に設けられた図示しない自動原稿送り装置の給紙台に置かれた原稿を１枚ずつ取り込み、取り込んだ原稿を光学的に読み取って画像情報を得る。あるいは、原稿読取部２２は、プラテンガラス等の原稿台に置かれた原稿を光学的に読み取って画像情報を得る。
【００３４】
画像形成部２０は、原稿読取部２２による読み取りによって得られた画像情報、又は、ネットワークを介して接続された外部のＰＣ等から得られた画像情報に基づく画像を、紙等の記録媒体に形成する。なお、本実施形態においては、画像を形成する方式として、電子写真方式を例示して説明するが、インクジェット方式等の他の方式を採用してもよい。
【００３５】
画像を形成する方式が電子写真方式の場合、画像形成部２０は、感光体ドラム、帯電部、露光部、現像部、転写部、及び定着部を含む。帯電部は、感光体ドラムに電圧を印加して感光体ドラムの表面を帯電させる。露光部は、帯電部で帯電された感光体ドラムを画像情報に応じた光で露光することにより感光体ドラムに静電潜像を形成する。現像部は、感光体ドラムに形成された静電潜像をトナーにより現像することで感光体ドラムにトナー像を形成する。転写部は、感光体ドラムに形成されたトナー像を記録媒体に転写する。定着部は、記録媒体に転写されたトナー像を加熱及び加圧により定着させる。
【００３６】
通信部２４は、インターネットや、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークに接続されており、外部のＰＣ等との間でネットワークを介して通信が可能とされる。
【００３７】
本実施形態に係る画像形成装置１０Ａは、ＯＣＲ（Optical Character Recognition）機能を備え、画像情報に含まれる画像を文字認識することにより文字コードに変換することが可能とされる。
【００３８】
ところで、上述したように、表に含まれる全てのキーについての値を抽出したい場合、全てのキーを含むヘッダ範囲を特定する必要があるが、この場合、全てのキーとヘッダ範囲との関係を予め定義しなければならない。
【００３９】
このため、本実施形態に係る画像形成装置１０ＡのＣＰＵ１２Ａは、記憶部１４に記憶されている抽出処理プログラム１４ＡをＲＡＭ１２Ｃに書き込んで実行することにより、図２に示す各部として機能する。
【００４０】
図２は、第１の実施形態に係る画像形成装置１０Ａの機能的な構成の一例を示すブロック図である。
図２に示すように、本実施形態に係る画像形成装置１０ＡのＣＰＵ１２Ａは、解析部３０、取得部３２、検索部３４、特定部３６、及び抽出部３８として機能する。
【００４１】
本実施形態に係る解析部３０は、原稿読取部２２による読み取りによって入力された表あるいは外部のＰＣ等から入力された表を取得し、取得した表について表構造解析を行う。なお、本実施形態において処理の対象とする表は、セルが行列状に配置された表であり、枠線を有するものでもよいし、枠線がないものでもよい。この表構造解析では、表の行数及び列数や、表のレイアウト等を含む表構造情報が取得される。この表構造解析には、公知の手法が適用される。なお、表が電子データであり、電子データに表構造情報が付加されている場合には、電子データから表構造情報を取得するようにしてもよい。
【００４２】
本実施形態に係る取得部３２は、表に含まれるセルの内容を取得する。具体的に、取得部３２は、セル内の文字列を取得する。例えば、原稿読取部２２による読み取りによって、表が画像データとして入力された場合には、画像データに対して文字認識処理を行い、セル毎に文字列を取得する。なお、ここでいう文字列とは、１つ以上の文字からなり、数字や記号等を含んでいてもよい。一方、外部のＰＣ等から、表が予め定められたデータ形式の電子データとして入力された場合には、電子データを解析して、セル毎の文字列を取得してもよい。
【００４３】
本実施形態に係る検索部３４は、入力された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する。なお、表におけるキーとは、表に含まれる複数の項目のうち、ユーザが抽出したい項目を意味し、文字列として表される。また、キーを表すセルをキーセルとし、全てのキーセルは、表のヘッダ範囲に含まれる。このヘッダ範囲には、ユーザが抽出したいキーセルだけではなく、単なる項目を表す文字列セルを含んでいてもよい。
【００４４】
本実施形態に係る特定部３６は、検索部３４により検索された複数のセルの分布状態に基づいて、表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する。
【００４５】
本実施形態に係る抽出部３８は、特定部３６により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する。
【００４６】
次に、図３を参照して、第１の実施形態に係る画像形成装置１０Ａの作用を説明する。
【００４７】
図３は、第１の実施形態に係る抽出処理プログラム１４Ａによる処理の流れの一例を示すフローチャートである。
【００４８】
まず、画像形成装置１０Ａに対して、抽出処理プログラム１４Ａの起動が指示されると、以下の各ステップを実行する。
【００４９】
図３のステップ１００では、解析部３０が、一例として、図４に示す表の入力を受け付ける。また、検索部３４が、受け付けた入力表に対応して、ユーザから検索用キーとして文字列の入力を受け付ける。
【００５０】
図４は、本実施形態に係る入力表５０の一例を示す図である。
図４に示す入力表５０におけるヘッダ範囲には、列Ａ、列-Ａ１、列-ＡＡ１、列-ＡＡ２、列-Ａ２、列-Ａ３、列-Ａ４、行Ａ、行-Ａ１、行-ＡＡ１、行-ＡＡ２、行-Ａ２、行-Ａ３、行-Ａ４の各セル、及び「表」セルが含まれている。なお、「表」セルは、単なる項目を表す文字列セルの一例である。
【００５１】
図４に示す入力表５０では、ユーザから入力された検索用キーの文字列が、複数のセルＳ１〜Ｓ５（図４の例では５個）に対応している。なお、図４においては、複数のセルＳ１〜Ｓ５と他のセルとの区別を容易にするため、複数のセルＳ１〜Ｓ５に下線を付して示している。
【００５２】
ステップ１０２では、解析部３０が、一例として、図４に示す入力表５０に対して、表構造解析を行い、表の行数及び列数や、表のレイアウト等を含む表構造情報を取得する。図４に示す入力表５０の場合、８行（行番号１〜８の図示省略）及び８列（列番号１〜８の図示省略）の表であることが解析される。なお、同一行の方向（横方向）を行方向とし、同一列の方向（縦方向）を列方向とする。１つのセルは、行番号及び列番号を用いて表される。例えば、「列-ＡＡ１」セルは、３行４列のセルとして表される。また、２つ以上のセルが結合された結合セルは、結合前の行番号及び列番号の情報を有している。例えば、「列Ａ」セルは、結合セルであるが、１行４列、１行５列、１行６列、１行７列、及び１行８列の情報を有している。このため、「列Ａ」セルは、１行４列、１行５列、１行６列、１行７列、及び１行８列の少なくとも１つのセルとして表される。
【００５３】
ステップ１０４では、取得部３２が、ステップ１０２で取得した表構造情報を用いて、一例として、図４に示す入力表５０に含まれる各セルの文字列を取得する。
【００５４】
ステップ１０６では、検索部３４が、ステップ１００で入力を受け付けた検索用キーに基づいて、一例として、図４に示す入力表５０から複数のセルを検索する。具体的には、ステップ１０４で取得した各セルの文字列と、ステップ１００で検索用キーとして入力を受け付けた文字列とを比較し、検索用キーの文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する。図４に示す入力表５０の場合、複数のセルＳ１〜Ｓ５が検索される。なお、図４に示すように、検索部３４により検索された複数のセルは、ヘッダ範囲の行方向及び列方向の各々に分布している。また、検索部３４により検索された複数のセルの数は、ヘッダ範囲に含まれるキーセルの数よりも少ない。
【００５５】
ステップ１０８では、特定部３６が、ステップ１０６で検索した複数のセルの分布状態に基づいて、一例として、図４に示す入力表５０のヘッダ行及びヘッダ列を表すヘッダ範囲を特定する。ここで、ステップ１０８に係る具体的なヘッダ範囲特定処理について、図５を参照して説明する。
【００５６】
図５は、第１の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【００５７】
まず、図５のステップ１２０では、特定部３６が、一例として、図４に示す入力表５０におけるヘッダ範囲となり得る行及び列の全ての組み合わせを取得する。図４に示す入力表５０の場合、行番号１〜８及び列番号１〜８を用いて表される行及び列の全ての組み合わせが取得される。ここで、図６を参照して、ヘッダ範囲となり得る行及び列の組み合わせの具体例について説明する。
【００５８】
図６は、第１の実施形態に係るヘッダ範囲となり得る行及び列の組み合わせの一例を示す図である。
図６に示すグレーの部分は、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【００５９】
図６に示すケースＸ１は、入力表５０の全セルがヘッダ範囲候補として選択された状態を表している。つまり、ケースＸ１は、行番号１〜８及び列番号１〜８の全ての組み合わせを表している。また、図６に示すケースＸ２は、入力表５０の「表」セル及び「列Ａ」セルがヘッダ範囲候補として選択された状態を表している。つまり、ケースＸ２は、行番号１及び列番号１〜８、行番号２及び列番号１〜３、行番号３及び列番号１〜３の各々の組み合わせを表している。なお、これらのケースＸ１及びケースＸ２は一例であり、ステップ１２０では、ヘッダ範囲となり得る行番号及び列番号の全ての組み合わせが取得される。
【００６０】
ステップ１２２では、特定部３６が、ヘッダ範囲を１つに特定できたか否かを判定する。ヘッダ範囲を１つに特定できたと判定した場合（肯定判定の場合）、リターンに移行し、ヘッダ範囲を１つに特定できないと判定した場合（否定判定の場合）、ステップ１２４に移行する。
【００６１】
ステップ１２４では、特定部３６が、ステップ１２０で取得した、ヘッダ範囲となり得る行及び列の全ての組み合わせから、第１ヘッダ範囲候補を特定する。この第１ヘッダ範囲候補は、検索部３４により検索された複数のセルを含む組み合わせとして表される。ここで、図７を参照して、第１ヘッダ範囲候補の具体例について説明する。
【００６２】
図７は、第１の実施形態に係る第１ヘッダ範囲候補の一例を示す図である。
図７に示すグレーの部分は、上述の図６と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【００６３】
図７に示すケースＸ１は、ユーザにより入力された検索用キーにより検索された複数のセルＳ１〜Ｓ５を含む組み合わせの一例を表している。このケースＸ１は、第１ヘッダ範囲候補として特定される。一方、図７に示すケースＸ２は、複数のセルＳ１〜Ｓ５のうち、セルＳ２、セルＳ３、セルＳ４、及びセルＳ５が含まれていないため、削除される。つまり、複数のセルＳ１〜Ｓ５の全てを含まないケースは削除される。
【００６４】
ステップ１２６では、特定部３６が、ヘッダ範囲を１つに特定できたか否かを判定する。ヘッダ範囲を１つに特定できたと判定した場合（肯定判定の場合）、リターンに移行し、ヘッダ範囲を１つに特定できないと判定した場合（否定判定の場合）、ステップ１２８に移行する。
【００６５】
ステップ１２８では、特定部３６が、ステップ１２４で特定した第１ヘッダ範囲候補から、第２ヘッダ範囲候補を特定する。この第２ヘッダ範囲候補は、検索部３４により検索された複数のセルのいずれかである第１セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される。なお、第１セルには、一例として、２つ以上のセルが結合された結合セルが適用される。ここで、図８を参照して、第２ヘッダ範囲候補の具体例について説明する。
【００６６】
図８は、第１の実施形態に係る第２ヘッダ範囲候補の一例を示す図である。
図８に示すグレーの部分は、上述の図６と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。また、図８に示す範囲Ｒ１は、値候補となる値範囲を示している。
【００６７】
図８に示すケースＸ１は、第１セルの一例であるセルＳ１、セルＳ２、セルＳ４、及びセルＳ５の各々が存在する行及び列を含む組み合わせの一例を表している。このケースＸ１は、第２ヘッダ範囲候補として特定される。一方、図８に示すケースＸ２は、セルＳ２が存在する行及び列の全てが含まれていない、すなわち、このケースＸ２では、セルＳ２の一部が値範囲Ｒ１に含まれているため、削除される。つまり、セルＳ１、セルＳ２、セルＳ４、及びセルＳ５の各々が存在する行及び列の全てを含まないケースは削除される。なお、図８に示す例では、セルＳ１が存在する列は４列〜８列であり、セルＳ１が存在する行は１行である。また、セルＳ２が存在する列は４列及び５列であり、セルＳ２が存在する行は２行である。また、セルＳ４が存在する行は４行〜８行であり、セルＳ４が存在する列は１列である。また、セルＳ５が存在する行は６行であり、セルＳ５が存在する列は２列及び３列である。
【００６８】
ステップ１３０では、特定部３６が、ヘッダ範囲を１つに特定できたか否かを判定する。ヘッダ範囲を１つに特定できたと判定した場合（肯定判定の場合）、リターンに移行し、ヘッダ範囲を１つに特定できないと判定した場合（否定判定の場合）、ステップ１３２に移行する。
【００６９】
ステップ１３２では、特定部３６が、ステップ１２８で特定した第２ヘッダ範囲候補から、セル数が最小となる第３ヘッダ範囲候補を特定する。ここで、図９を参照して、第３ヘッダ範囲候補の具体例について説明する。
【００７０】
図９は、第１の実施形態に係る第３ヘッダ範囲候補の一例を示す図である。
図９に示すグレーの部分は、上述の図６と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【００７１】
図９に示すケースＸ４は、セル数が最小となる行及び列を含む組み合わせの一例を表している。このケースＸ４は、第３ヘッダ範囲候補として特定される。一方、図９に示すケースＸ５は、セル数が最小となる行及び列を含む組み合わせではないため、削除される。
【００７２】
ステップ１３４では、特定部３６が、ヘッダ範囲を１つに特定できたか否かを判定する。ヘッダ範囲を１つに特定できたと判定した場合（肯定判定の場合）、リターンに移行し、第３ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合、つまり、ヘッダ範囲を１つに特定できないと判定した場合（否定判定の場合）、ステップ１３６に移行する。
【００７３】
ステップ１３６では、特定部３６が、二次元表の第３ヘッダ範囲候補をヘッダ範囲として特定し、リターンに移行する。ここで、図１０を参照して、一次元表及び二次元表の第３ヘッダ範囲候補の具体例について説明する。
【００７４】
図１０は、第１の実施形態に係る一元表及び二次元表の第３ヘッダ範囲候補の一例を示す図である。
図１０に示すグレーの部分は、上述の図６と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【００７５】
図１０に示す入力表５２では、ユーザから入力された検索用キーがセルＳ１１及びセルＳ１２に対応している。図１０に示す例では、第３ヘッダ範囲候補として、セル数が４つで同一となるケースＸ６及びケースＸ７が存在し、１つに特定することができない。なお、ケースＸ６は一次元表であり、ケースＸ７は二次元表である。この場合、二次元表のケースＸ７がヘッダ範囲として特定される。つまり、１行１列、１行２列、２行１列、及び３行１列がヘッダ範囲として特定される。なお、第３ヘッダ範囲候補が複数ある場合には、ユーザに対して、複数の第３ヘッダ範囲候補を提示して、ユーザがいずれかの第３ヘッダ範囲候補をヘッダ範囲として選択するようにしてもよい。
【００７６】
次に、図３に戻り、ステップ１１０では、抽出部３８が、上記ヘッダ範囲特定処理により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する。ここで、図１１を参照して、各キーセルに対応する値を抽出する処理について説明する。
【００７７】
図１１は、第１の実施形態に係るキーセル値抽出処理の説明に供する図である。
図１１に示すグレーの部分は、ヘッダ範囲として特定された行及び列の組み合わせを表している。
【００７８】
図１１に示すヘッダ範囲５４には、「キーＡ１」セル、「キーＢ１」セル、「キーＣ１」セル、「キーＡ２」セル、「キーＢ２」セル、「キーＣ２」セル、及び「キーＡ３」セルが含まれる。図１１に示す例の場合、ヘッダ範囲５４に存在する全てのセルをキーセルと判定する。そして、各キーセルの行番号及び列番号を用いて、各キーセルに対応する値を抽出する。
【００７９】
具体的に、２行２列の「キーＢ２」セル、３行１列の「キーＡ３」セル、及び１行２列の「キーＢ１」セルに対応して、３行２列の「値１」が抽出される。また、３行１列の「キーＡ３」セル、１行３列の「キーＣ１」セル、及び２行３列の「キーＣ２」セルに対応して、３行３列の「値２」が抽出される。
【００８０】
ステップ１１２では、抽出部３８が、上記で抽出した結果を、一例として記憶部１４に出力し、本抽出処理プログラム１４Ａによる一連の処理を終了する。
【００８１】
本実施形態によれば、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲が特定される。このため、全てのキーとヘッダ範囲との関係を予め定義することなく、ヘッダ範囲が特定され、表に含まれるキー及びキーに対応する値が抽出される。
【００８２】
[第２の実施形態]
上記第１の実施形態では、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲を特定する場合について説明した。本実施形態では、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲を特定する場合について説明する。
【００８３】
本実施形態に係る画像形成装置１０ＢのＣＰＵ１２Ａは、記憶部１４に記憶されている抽出処理プログラム１４ＡをＲＡＭ１２Ｃに書き込んで実行することにより、図１２に示す各部として機能する。
【００８４】
図１２は、第２の実施形態に係る画像形成装置１０Ｂの機能的な構成の一例を示すブロック図である。
図１２に示すように、本実施形態に係る画像形成装置１０ＢのＣＰＵ１２Ａは、解析部３０、取得部３２、検索部３４、特定部４０、及び抽出部３８として機能する。なお、第１の実施形態に示す画像形成装置１０Ａと同一の機能を有する構成要素には同一の符号を付し、ここでの繰り返しの説明は省略する。
【００８５】
本実施形態に係る特定部４０は、表の予め定められた基準セル及び基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において検索部３４により検索された複数のセルを含まない矩形領域を特定する。そして、特定部４０は、表から、特定した矩形領域のうち、セル数が最大となる矩形領域を除いた範囲をヘッダ範囲として特定する。
【００８６】
例えば、基準セルは、表の右下端に位置するセルであり、対角セルは、右下端に位置するセルの左上の対角に位置するセルである。
【００８７】
次に、上述の図３及び図１３を参照して、第２の実施形態に係る画像形成装置１０Ｂの作用を説明する。
【００８８】
本実施形態においては、上述の図３に示すステップ１０８に係るヘッダ範囲特定処理のみが異なるため、このヘッダ範囲特定処理について図１３を参照して具体的に説明する。
【００８９】
図１３は、第２の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【００９０】
まず、図１３のステップ１４０では、特定部４０が、一例として、図１４に示す入力表５６に対して、値の範囲を示す矩形領域を特定する。
【００９１】
図１４は、第２の実施形態に係るヘッダ範囲特定処理の説明に供する図である。
図１４に示す入力表５６は、検索部３４により検索された複数のセルとして、「キーＢ１」セル、「キーＣ１」セル、及び「キーＤ１」セルを含んでいる。
【００９２】
図１４に示す入力表５６において、基準セルＳ２１は一例として右下端に位置し、対角セルＳ２２は一例として左上の対角に位置している。基準セルＳ２１及び対角セルＳ２２を含み、かつ、「キーＢ１」セル、「キーＣ１」セル、及び「キーＤ１」セルを含まない矩形領域（つまり、値の範囲）のうち、セル数が最大となる矩形領域を特定する。なお、基準セルＳ２１の位置は、矩形領域の右下端に限定されるものではない。基準セルＳ２１の位置は、矩形領域の左下端でもよいし、右上端、左上端でもよい。
【００９３】
ステップ１４２では、特定部４０が、一例として、図１４に示す入力表５６から、ステップ１４０で特定した矩形領域を除いた範囲をヘッダ範囲として特定し、上述の図３に示すステップ１１０にリターンする。
【００９４】
本実施形態によれば、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲が特定される。このため、全てのキーとヘッダ範囲との関係を予め定義することなく、ヘッダ範囲が特定され、表に含まれるキー及びキーに対応する値が抽出される。
【００９５】
以上、実施形態に係る情報処理装置の一例として画像形成装置を例示して説明した。実施形態は、画像形成装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【００９６】
その他、上記実施形態で説明した画像形成装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【００９７】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【００９８】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【００９９】
１０Ａ、１０Ｂ画像形成装置
１２   制御部
１２Ａ ＣＰＵ
１２Ｂ ＲＯＭ
１２Ｃ ＲＡＭ
１２Ｄ Ｉ／Ｏ
１４   記憶部
１４Ａ 抽出処理プログラム
１６   表示部
１８   操作部
２０   画像形成部
２２   原稿読取部
２４   通信部
３０   解析部
３２   取得部
３４   検索部
３６、４０特定部
３８   抽出部
５０、５２、５６入力表
５４   ヘッダ範囲
【図１】
2020123233.tif 000003
【図２】
2020123233.tif 000004
【図３】
2020123233.tif 000005
【図４】
2020123233.tif 000006
【図５】
2020123233.tif 000007
【図６】
2020123233.tif 000008
【図７】
2020123233.tif 000009
【図８】
2020123233.tif 000010
【図９】
2020123233.tif 000011
【図１０】
2020123233.tif 000012
【図１１】
2020123233.tif 000013
【図１２】
2020123233.tif 000014
【図１３】
2020123233.tif 000015
【図１４】
2020123233.tif 000016