(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20221122BHJP
【FI】
G06F16/90
(21)【出願番号】P 2019015799
(22)【出願日】2019-01-31
【審査請求日】2021-12-20
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】張 乂凡
【審査官】早川 学
(56)【参考文献】
【文献】特開2016-91081(JP,A)
【文献】特表2017-525033(JP,A)
【文献】特開2004-86650(JP,A)
【文献】米国特許出願公開第2019/0278853(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
セルが行列状に配置された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する検索部と、
前記検索部により検索された複数のセルの分布状態に基づいて、前記表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する特定部と、
前記特定部により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する抽出部と、
を備えた情報処理装置。
【請求項2】
前記特定部は、
前記表におけるヘッダ範囲となり得る行及び列の全ての組み合わせから、前記検索部により検索された複数のセルを含む組み合わせとして表される第1ヘッダ範囲候補を特定し、
特定した第1ヘッダ範囲候補から、前記検索部により検索された複数のセルのいずれかである第1セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される第2ヘッダ範囲候補を特定し、
特定した第2ヘッダ範囲候補から、セル数が最小となる第3ヘッダ範囲候補が1つの組み合わせとして特定された場合に、前記第3ヘッダ範囲候補を前記ヘッダ範囲とする請求項1に記載の情報処理装置。
【請求項3】
前記特定部は、前記第3ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合に、前記二次元表の第3ヘッダ範囲候補を前記ヘッダ範囲とする請求項2に記載の情報処理装置。
【請求項4】
前記第1セルは、2つ以上のセルが結合された結合セルである請求項2又は3に記載の情報処理装置。
【請求項5】
前記特定部は、前記表から、前記表の予め定められた基準セル及び前記基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において前記検索部により検索された複数のセルを含まない矩形領域のうち、セル数が最大となる矩形領域を除いた範囲を前記ヘッダ範囲として特定する請求項1に記載の情報処理装置。
【請求項6】
前記基準セルは、前記表の右下端に位置するセルであり、
前記対角セルは、前記右下端に位置するセルの左上の対角に位置するセルである請求項5に記載の情報処理装置。
【請求項7】
前記検索部により検索された複数のセルは、前記ヘッダ範囲の行方向及び列方向の各々に分布している請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
前記検索部により検索された複数のセルの数は、前記ヘッダ範囲に含まれるキーセルの数よりも少ない請求項7に記載の情報処理装置。
【請求項9】
コンピュータを、請求項1~8のいずれか1項に記載の情報処理装置が備える各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
例えば、特許文献1には、帳票のフォーマットをインポートするシステムが記載されている。このシステムは、インポートする帳票の各ブロックにおいてブロック抽出ポリシに登録されているタイトルと属性が合致する候補ブロックを抽出し、抽出した候補ブロックを合致率と共に表示部に表示する。このシステムは、表示したブロック及び合致率の中からユーザが選択した候補ブロックの入力を受け付け、受け付けた候補ブロックに基づいて、インポートする帳票の定義ファイルのひな型ブロック定義を作成したブロック定義を元に定義ファイルをブロックライブラリに出力する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、表に含まれる全てのキーについての値を抽出したい場合、全てのキーを含むヘッダ範囲を特定する必要があるが、この場合、全てのキーとヘッダ範囲との関係を予め定義しなければならない。しかし、表に含まれる全てのキーについて定義することは容易ではない。
【0005】
本発明は、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、第1態様に係る情報処理装置は、セルが行列状に配置された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する検索部と、前記検索部により検索された複数のセルの分布状態に基づいて、前記表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する特定部と、前記特定部により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する抽出部と、を備えている。
【0007】
また、第2態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記特定部が、前記表におけるヘッダ範囲となり得る行及び列の全ての組み合わせから、前記検索部により検索された複数のセルを含む組み合わせとして表される第1ヘッダ範囲候補を特定し、特定した第1ヘッダ範囲候補から、前記検索部により検索された複数のセルのいずれかである第1セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される第2ヘッダ範囲候補を特定し、特定した第2ヘッダ範囲候補から、セル数が最小となる第3ヘッダ範囲候補が1つの組み合わせとして特定された場合に、前記第3ヘッダ範囲候補を前記ヘッダ範囲とする。
【0008】
また、第3態様に係る情報処理装置は、第2態様に係る情報処理装置において、前記特定部が、前記第3ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合に、前記二次元表の第3ヘッダ範囲候補を前記ヘッダ範囲とする。
【0009】
また、第4態様に係る情報処理装置は、第2態様又は第3態様に係る情報処理装置において、前記第1セルが、2つ以上のセルが結合された結合セルとされている。
【0010】
また、第5態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記特定部が、前記表から、前記表の予め定められた基準セル及び前記基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において前記検索部により検索された複数のセルを含まない矩形領域のうち、セル数が最大となる矩形領域を除いた範囲を前記ヘッダ範囲として特定する。
【0011】
また、第6態様に係る情報処理装置は、第5態様に係る情報処理装置において、前記基準セルが、前記表の右下端に位置するセルとされ、前記対角セルが、前記右下端に位置するセルの左上の対角に位置するセルとされている。
【0012】
また、第7態様に係る情報処理装置は、第1態様~第6態様のいずれか1の態様に係る情報処理装置において、前記検索部により検索された複数のセルが、前記ヘッダ範囲の行方向及び列方向の各々に分布している。
【0013】
また、第8態様に係る情報処理装置は、第7態様に係る情報処理装置において、前記検索部により検索された複数のセルの数が、前記ヘッダ範囲に含まれるキーセルの数よりも少ない。
【0014】
更に、上記目的を達成するために、第9態様に係るプログラムは、コンピュータを、第1態様~第8態様のいずれか1の態様に係る情報処理装置が備える各部として機能させる。
【発明の効果】
【0015】
第1態様及び第9態様によれば、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる、という効果を有する。
【0016】
第2態様によれば、表に含まれる全てのキーについて定義することなく、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲を特定することができる、という効果を有する。
【0017】
第3態様によれば、二次元表のヘッダ範囲を優先的に特定することができる、という効果を有する。
【0018】
第4態様によれば、結合セルを含む場合であっても、表に含まれる全てのキーについて定義することなく、全てのキーを含むヘッダ範囲を特定することができる、という効果を有する。
【0019】
第5態様によれば、表に含まれる全てのキーについて定義することなく、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲を特定することができる、という効果を有する。
【0020】
第6態様によれば、ヘッダ範囲を左上に有する一般的な表に対して、複数のセルを含まない矩形領域を得ることができる、という効果を有する。
【0021】
第7態様によれば、二次元表におけるヘッダ範囲を特定することができる、という効果を有する。
【0022】
第8態様によれば、ヘッダ範囲に含まれるキーセルの数よりも少ないキーでヘッダ範囲を特定することができる、という効果を有する。
【図面の簡単な説明】
【0023】
【
図1】第1の実施形態に係る画像形成装置の電気的な構成の一例を示すブロック図である。
【
図2】第1の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【
図3】第1の実施形態に係る抽出処理プログラムによる処理の流れの一例を示すフローチャートである。
【
図4】実施形態に係る入力表の一例を示す図である。
【
図5】第1の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【
図6】第1の実施形態に係るヘッダ範囲となり得る行及び列の組み合わせの一例を示す図である。
【
図7】第1の実施形態に係る第1ヘッダ範囲候補の一例を示す図である。
【
図8】第1の実施形態に係る第2ヘッダ範囲候補の一例を示す図である。
【
図9】第1の実施形態に係る第3ヘッダ範囲候補の一例を示す図である。
【
図10】第1の実施形態に係る一元表及び二次元表の第3ヘッダ範囲候補の一例を示す図である。
【
図11】第1の実施形態に係るキーセル値抽出処理の説明に供する図である。
【
図12】第2の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【
図13】第2の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【
図14】第2の実施形態に係るヘッダ範囲特定処理の説明に供する図である。
【発明を実施するための形態】
【0024】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【0025】
[第1の実施形態]
図1は、第1の実施形態に係る画像形成装置10Aの電気的な構成の一例を示すブロック図である。
図1に示すように、本実施形態に係る画像形成装置10Aは、制御部12と、記憶部14と、表示部16と、操作部18と、画像形成部20と、原稿読取部22と、通信部24と、を備えている。
【0026】
なお、画像形成装置10Aは、情報処理装置の一例である。この情報処理装置には、画像形成装置10A以外に、例えば、パーソナルコンピュータ(PC:Personal Computer)や、スマートフォン、タブレット端末等を適用してもよい。
【0027】
制御部12は、CPU(Central Processing Unit)12A、ROM(Read Only Memory)12B、RAM(Random Access Memory)12C、及び入出力インターフェース(I/O)12Dを備えており、これら各部がバスを介して各々接続されている。
【0028】
I/O12Dには、記憶部14と、表示部16と、操作部18と、画像形成部20と、原稿読取部22と、通信部24と、を含む各機能部が接続されている。これらの各機能部は、I/O12Dを介して、CPU12Aと相互に通信可能とされる。
【0029】
制御部12は、画像形成装置10Aの一部の動作を制御するサブ制御部として構成されてもよいし、画像形成装置10Aの全体の動作を制御するメイン制御部の一部として構成されてもよい。制御部12の各ブロックの一部又は全部には、例えば、LSI(Large Scale Integration)等の集積回路又はIC(Integrated Circuit)チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御部12の集積化には、LSIに限らず、専用回路又は汎用プロセッサを用いてもよい。
【0030】
記憶部14としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等が用いられる。記憶部14には、本実施形態に係る表データの抽出機能を実現するための抽出処理プログラム14Aが記憶される。なお、この抽出処理プログラム14Aは、ROM12Bに記憶されていてもよい。
【0031】
抽出処理プログラム14Aは、例えば、画像形成装置10Aに予めインストールされていてもよい。抽出処理プログラム14Aは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、画像形成装置10Aに適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、HDD、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が想定される。
【0032】
表示部16には、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイ等が用いられる。表示部16は、タッチパネルを一体的に有している。操作部18には、テンキーやスタートキー等の各種の操作キーが設けられている。表示部16及び操作部18は、画像形成装置10Aのユーザから各種の指示を受け付ける。この各種の指示には、例えば、原稿の読み取りを開始させる指示や、原稿のコピーを開始させる指示等が含まれる。表示部16は、ユーザから受け付けた指示に応じて実行された処理の結果や、処理に対する通知等の各種の情報を表示する。
【0033】
原稿読取部22は、画像形成装置10Aの上部に設けられた図示しない自動原稿送り装置の給紙台に置かれた原稿を1枚ずつ取り込み、取り込んだ原稿を光学的に読み取って画像情報を得る。あるいは、原稿読取部22は、プラテンガラス等の原稿台に置かれた原稿を光学的に読み取って画像情報を得る。
【0034】
画像形成部20は、原稿読取部22による読み取りによって得られた画像情報、又は、ネットワークを介して接続された外部のPC等から得られた画像情報に基づく画像を、紙等の記録媒体に形成する。なお、本実施形態においては、画像を形成する方式として、電子写真方式を例示して説明するが、インクジェット方式等の他の方式を採用してもよい。
【0035】
画像を形成する方式が電子写真方式の場合、画像形成部20は、感光体ドラム、帯電部、露光部、現像部、転写部、及び定着部を含む。帯電部は、感光体ドラムに電圧を印加して感光体ドラムの表面を帯電させる。露光部は、帯電部で帯電された感光体ドラムを画像情報に応じた光で露光することにより感光体ドラムに静電潜像を形成する。現像部は、感光体ドラムに形成された静電潜像をトナーにより現像することで感光体ドラムにトナー像を形成する。転写部は、感光体ドラムに形成されたトナー像を記録媒体に転写する。定着部は、記録媒体に転写されたトナー像を加熱及び加圧により定着させる。
【0036】
通信部24は、インターネットや、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークに接続されており、外部のPC等との間でネットワークを介して通信が可能とされる。
【0037】
本実施形態に係る画像形成装置10Aは、OCR(Optical Character Recognition)機能を備え、画像情報に含まれる画像を文字認識することにより文字コードに変換することが可能とされる。
【0038】
ところで、上述したように、表に含まれる全てのキーについての値を抽出したい場合、全てのキーを含むヘッダ範囲を特定する必要があるが、この場合、全てのキーとヘッダ範囲との関係を予め定義しなければならない。
【0039】
このため、本実施形態に係る画像形成装置10AのCPU12Aは、記憶部14に記憶されている抽出処理プログラム14AをRAM12Cに書き込んで実行することにより、
図2に示す各部として機能する。
【0040】
図2は、第1の実施形態に係る画像形成装置10Aの機能的な構成の一例を示すブロック図である。
図2に示すように、本実施形態に係る画像形成装置10AのCPU12Aは、解析部30、取得部32、検索部34、特定部36、及び抽出部38として機能する。
【0041】
本実施形態に係る解析部30は、原稿読取部22による読み取りによって入力された表あるいは外部のPC等から入力された表を取得し、取得した表について表構造解析を行う。なお、本実施形態において処理の対象とする表は、セルが行列状に配置された表であり、枠線を有するものでもよいし、枠線がないものでもよい。この表構造解析では、表の行数及び列数や、表のレイアウト等を含む表構造情報が取得される。この表構造解析には、公知の手法が適用される。なお、表が電子データであり、電子データに表構造情報が付加されている場合には、電子データから表構造情報を取得するようにしてもよい。
【0042】
本実施形態に係る取得部32は、表に含まれるセルの内容を取得する。具体的に、取得部32は、セル内の文字列を取得する。例えば、原稿読取部22による読み取りによって、表が画像データとして入力された場合には、画像データに対して文字認識処理を行い、セル毎に文字列を取得する。なお、ここでいう文字列とは、1つ以上の文字からなり、数字や記号等を含んでいてもよい。一方、外部のPC等から、表が予め定められたデータ形式の電子データとして入力された場合には、電子データを解析して、セル毎の文字列を取得してもよい。
【0043】
本実施形態に係る検索部34は、入力された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する。なお、表におけるキーとは、表に含まれる複数の項目のうち、ユーザが抽出したい項目を意味し、文字列として表される。また、キーを表すセルをキーセルとし、全てのキーセルは、表のヘッダ範囲に含まれる。このヘッダ範囲には、ユーザが抽出したいキーセルだけではなく、単なる項目を表す文字列セルを含んでいてもよい。
【0044】
本実施形態に係る特定部36は、検索部34により検索された複数のセルの分布状態に基づいて、表におけるヘッダ行及びヘッダ列を表すヘッダ範囲を特定する。
【0045】
本実施形態に係る抽出部38は、特定部36により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する。
【0046】
次に、
図3を参照して、第1の実施形態に係る画像形成装置10Aの作用を説明する。
【0047】
図3は、第1の実施形態に係る抽出処理プログラム14Aによる処理の流れの一例を示すフローチャートである。
【0048】
まず、画像形成装置10Aに対して、抽出処理プログラム14Aの起動が指示されると、以下の各ステップを実行する。
【0049】
図3のステップ100では、解析部30が、一例として、
図4に示す表の入力を受け付ける。また、検索部34が、受け付けた入力表に対応して、ユーザから検索用キーとして文字列の入力を受け付ける。
【0050】
図4は、本実施形態に係る入力表50の一例を示す図である。
図4に示す入力表50におけるヘッダ範囲には、列A、列-A1、列-AA1、列-AA2、列-A2、列-A3、列-A4、行A、行-A1、行-AA1、行-AA2、行-A2、行-A3、行-A4の各セル、及び「表」セルが含まれている。なお、「表」セルは、単なる項目を表す文字列セルの一例である。
【0051】
図4に示す入力表50では、ユーザから入力された検索用キーの文字列が、複数のセルS1~S5(
図4の例では5個)に対応している。なお、
図4においては、複数のセルS1~S5と他のセルとの区別を容易にするため、複数のセルS1~S5に下線を付して示している。
【0052】
ステップ102では、解析部30が、一例として、
図4に示す入力表50に対して、表構造解析を行い、表の行数及び列数や、表のレイアウト等を含む表構造情報を取得する。
図4に示す入力表50の場合、8行(行番号1~8の図示省略)及び8列(列番号1~8の図示省略)の表であることが解析される。なお、同一行の方向(横方向)を行方向とし、同一列の方向(縦方向)を列方向とする。1つのセルは、行番号及び列番号を用いて表される。例えば、「列-AA1」セルは、3行4列のセルとして表される。また、2つ以上のセルが結合された結合セルは、結合前の行番号及び列番号の情報を有している。例えば、「列A」セルは、結合セルであるが、1行4列、1行5列、1行6列、1行7列、及び1行8列の情報を有している。このため、「列A」セルは、1行4列、1行5列、1行6列、1行7列、及び1行8列の少なくとも1つのセルとして表される。
【0053】
ステップ104では、取得部32が、ステップ102で取得した表構造情報を用いて、一例として、
図4に示す入力表50に含まれる各セルの文字列を取得する。
【0054】
ステップ106では、検索部34が、ステップ100で入力を受け付けた検索用キーに基づいて、一例として、
図4に示す入力表50から複数のセルを検索する。具体的には、ステップ104で取得した各セルの文字列と、ステップ100で検索用キーとして入力を受け付けた文字列とを比較し、検索用キーの文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する。
図4に示す入力表50の場合、複数のセルS1~S5が検索される。なお、
図4に示すように、検索部34により検索された複数のセルは、ヘッダ範囲の行方向及び列方向の各々に分布している。また、検索部34により検索された複数のセルの数は、ヘッダ範囲に含まれるキーセルの数よりも少ない。
【0055】
ステップ108では、特定部36が、ステップ106で検索した複数のセルの分布状態に基づいて、一例として、
図4に示す入力表50のヘッダ行及びヘッダ列を表すヘッダ範囲を特定する。ここで、ステップ108に係る具体的なヘッダ範囲特定処理について、
図5を参照して説明する。
【0056】
図5は、第1の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【0057】
まず、
図5のステップ120では、特定部36が、一例として、
図4に示す入力表50におけるヘッダ範囲となり得る行及び列の全ての組み合わせを取得する。
図4に示す入力表50の場合、行番号1~8及び列番号1~8を用いて表される行及び列の全ての組み合わせが取得される。ここで、
図6を参照して、ヘッダ範囲となり得る行及び列の組み合わせの具体例について説明する。
【0058】
図6は、第1の実施形態に係るヘッダ範囲となり得る行及び列の組み合わせの一例を示す図である。
図6に示すグレーの部分は、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【0059】
図6に示すケースX1は、入力表50の全セルがヘッダ範囲候補として選択された状態を表している。つまり、ケースX1は、行番号1~8及び列番号1~8の全ての組み合わせを表している。また、
図6に示すケースX2は、入力表50の「表」セル及び「列A」セルがヘッダ範囲候補として選択された状態を表している。つまり、ケースX2は、行番号1及び列番号1~8、行番号2及び列番号1~3、行番号3及び列番号1~3の各々の組み合わせを表している。なお、これらのケースX1及びケースX2は一例であり、ステップ120では、ヘッダ範囲となり得る行番号及び列番号の全ての組み合わせが取得される。
【0060】
ステップ122では、特定部36が、ヘッダ範囲を1つに特定できたか否かを判定する。ヘッダ範囲を1つに特定できたと判定した場合(肯定判定の場合)、リターンに移行し、ヘッダ範囲を1つに特定できないと判定した場合(否定判定の場合)、ステップ124に移行する。
【0061】
ステップ124では、特定部36が、ステップ120で取得した、ヘッダ範囲となり得る行及び列の全ての組み合わせから、第1ヘッダ範囲候補を特定する。この第1ヘッダ範囲候補は、検索部34により検索された複数のセルを含む組み合わせとして表される。ここで、
図7を参照して、第1ヘッダ範囲候補の具体例について説明する。
【0062】
図7は、第1の実施形態に係る第1ヘッダ範囲候補の一例を示す図である。
図7に示すグレーの部分は、上述の
図6と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【0063】
図7に示すケースX1は、ユーザにより入力された検索用キーにより検索された複数のセルS1~S5を含む組み合わせの一例を表している。このケースX1は、第1ヘッダ範囲候補として特定される。一方、
図7に示すケースX2は、複数のセルS1~S5のうち、セルS2、セルS3、セルS4、及びセルS5が含まれていないため、削除される。つまり、複数のセルS1~S5の全てを含まないケースは削除される。
【0064】
ステップ126では、特定部36が、ヘッダ範囲を1つに特定できたか否かを判定する。ヘッダ範囲を1つに特定できたと判定した場合(肯定判定の場合)、リターンに移行し、ヘッダ範囲を1つに特定できないと判定した場合(否定判定の場合)、ステップ128に移行する。
【0065】
ステップ128では、特定部36が、ステップ124で特定した第1ヘッダ範囲候補から、第2ヘッダ範囲候補を特定する。この第2ヘッダ範囲候補は、検索部34により検索された複数のセルのいずれかである第1セルが存在する行及び列の少なくとも一方を含む組み合わせとして表される。なお、第1セルには、一例として、2つ以上のセルが結合された結合セルが適用される。ここで、
図8を参照して、第2ヘッダ範囲候補の具体例について説明する。
【0066】
図8は、第1の実施形態に係る第2ヘッダ範囲候補の一例を示す図である。
図8に示すグレーの部分は、上述の
図6と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。また、
図8に示す範囲R1は、値候補となる値範囲を示している。
【0067】
図8に示すケースX1は、第1セルの一例であるセルS1、セルS2、セルS4、及びセルS5の各々が存在する行及び列を含む組み合わせの一例を表している。このケースX1は、第2ヘッダ範囲候補として特定される。一方、
図8に示すケースX2は、セルS2が存在する行及び列の全てが含まれていない、すなわち、このケースX2では、セルS2の一部が値範囲R1に含まれているため、削除される。つまり、セルS1、セルS2、セルS4、及びセルS5の各々が存在する行及び列の全てを含まないケースは削除される。なお、
図8に示す例では、セルS1が存在する列は4列~8列であり、セルS1が存在する行は1行である。また、セルS2が存在する列は4列及び5列であり、セルS2が存在する行は2行である。また、セルS4が存在する行は4行~8行であり、セルS4が存在する列は1列である。また、セルS5が存在する行は6行であり、セルS5が存在する列は2列及び3列である。
【0068】
ステップ130では、特定部36が、ヘッダ範囲を1つに特定できたか否かを判定する。ヘッダ範囲を1つに特定できたと判定した場合(肯定判定の場合)、リターンに移行し、ヘッダ範囲を1つに特定できないと判定した場合(否定判定の場合)、ステップ132に移行する。
【0069】
ステップ132では、特定部36が、ステップ128で特定した第2ヘッダ範囲候補から、セル数が最小となる第3ヘッダ範囲候補を特定する。ここで、
図9を参照して、第3ヘッダ範囲候補の具体例について説明する。
【0070】
図9は、第1の実施形態に係る第3ヘッダ範囲候補の一例を示す図である。
図9に示すグレーの部分は、上述の
図6と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【0071】
図9に示すケースX4は、セル数が最小となる行及び列を含む組み合わせの一例を表している。このケースX4は、第3ヘッダ範囲候補として特定される。一方、
図9に示すケースX5は、セル数が最小となる行及び列を含む組み合わせではないため、削除される。
【0072】
ステップ134では、特定部36が、ヘッダ範囲を1つに特定できたか否かを判定する。ヘッダ範囲を1つに特定できたと判定した場合(肯定判定の場合)、リターンに移行し、第3ヘッダ範囲候補が一次元表及び二次元表の複数の組み合わせとして特定された場合、つまり、ヘッダ範囲を1つに特定できないと判定した場合(否定判定の場合)、ステップ136に移行する。
【0073】
ステップ136では、特定部36が、二次元表の第3ヘッダ範囲候補をヘッダ範囲として特定し、リターンに移行する。ここで、
図10を参照して、一次元表及び二次元表の第3ヘッダ範囲候補の具体例について説明する。
【0074】
図10は、第1の実施形態に係る一元表及び二次元表の第3ヘッダ範囲候補の一例を示す図である。
図10に示すグレーの部分は、上述の
図6と同様に、ヘッダ範囲となり得る行及び列の組み合わせを表している。
【0075】
図10に示す入力表52では、ユーザから入力された検索用キーがセルS11及びセルS12に対応している。
図10に示す例では、第3ヘッダ範囲候補として、セル数が4つで同一となるケースX6及びケースX7が存在し、1つに特定することができない。なお、ケースX6は一次元表であり、ケースX7は二次元表である。この場合、二次元表のケースX7がヘッダ範囲として特定される。つまり、1行1列、1行2列、2行1列、及び3行1列がヘッダ範囲として特定される。なお、第3ヘッダ範囲候補が複数ある場合には、ユーザに対して、複数の第3ヘッダ範囲候補を提示して、ユーザがいずれかの第3ヘッダ範囲候補をヘッダ範囲として選択するようにしてもよい。
【0076】
次に、
図3に戻り、ステップ110では、抽出部38が、上記ヘッダ範囲特定処理により特定されたヘッダ範囲に含まれる複数のセルをキーセルとして、各キーセルに対応する値を抽出する。ここで、
図11を参照して、各キーセルに対応する値を抽出する処理について説明する。
【0077】
図11は、第1の実施形態に係るキーセル値抽出処理の説明に供する図である。
図11に示すグレーの部分は、ヘッダ範囲として特定された行及び列の組み合わせを表している。
【0078】
図11に示すヘッダ範囲54には、「キーA1」セル、「キーB1」セル、「キーC1」セル、「キーA2」セル、「キーB2」セル、「キーC2」セル、及び「キーA3」セルが含まれる。
図11に示す例の場合、ヘッダ範囲54に存在する全てのセルをキーセルと判定する。そして、各キーセルの行番号及び列番号を用いて、各キーセルに対応する値を抽出する。
【0079】
具体的に、2行2列の「キーB2」セル、3行1列の「キーA3」セル、及び1行2列の「キーB1」セルに対応して、3行2列の「値1」が抽出される。また、3行1列の「キーA3」セル、1行3列の「キーC1」セル、及び2行3列の「キーC2」セルに対応して、3行3列の「値2」が抽出される。
【0080】
ステップ112では、抽出部38が、上記で抽出した結果を、一例として記憶部14に出力し、本抽出処理プログラム14Aによる一連の処理を終了する。
【0081】
本実施形態によれば、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲が特定される。このため、全てのキーとヘッダ範囲との関係を予め定義することなく、ヘッダ範囲が特定され、表に含まれるキー及びキーに対応する値が抽出される。
【0082】
[第2の実施形態]
上記第1の実施形態では、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含む範囲からヘッダ範囲を特定する場合について説明した。本実施形態では、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲を特定する場合について説明する。
【0083】
本実施形態に係る画像形成装置10BのCPU12Aは、記憶部14に記憶されている抽出処理プログラム14AをRAM12Cに書き込んで実行することにより、
図12に示す各部として機能する。
【0084】
図12は、第2の実施形態に係る画像形成装置10Bの機能的な構成の一例を示すブロック図である。
図12に示すように、本実施形態に係る画像形成装置10BのCPU12Aは、解析部30、取得部32、検索部34、特定部40、及び抽出部38として機能する。なお、第1の実施形態に示す画像形成装置10Aと同一の機能を有する構成要素には同一の符号を付し、ここでの繰り返しの説明は省略する。
【0085】
本実施形態に係る特定部40は、表の予め定められた基準セル及び基準セルの対角に位置する対角セルを含み、かつ、行方向及び列方向において検索部34により検索された複数のセルを含まない矩形領域を特定する。そして、特定部40は、表から、特定した矩形領域のうち、セル数が最大となる矩形領域を除いた範囲をヘッダ範囲として特定する。
【0086】
例えば、基準セルは、表の右下端に位置するセルであり、対角セルは、右下端に位置するセルの左上の対角に位置するセルである。
【0087】
次に、上述の
図3及び
図13を参照して、第2の実施形態に係る画像形成装置10Bの作用を説明する。
【0088】
本実施形態においては、上述の
図3に示すステップ108に係るヘッダ範囲特定処理のみが異なるため、このヘッダ範囲特定処理について
図13を参照して具体的に説明する。
【0089】
図13は、第2の実施形態に係るヘッダ範囲特定処理の流れの一例を示すフローチャートである。
【0090】
まず、
図13のステップ140では、特定部40が、一例として、
図14に示す入力表56に対して、値の範囲を示す矩形領域を特定する。
【0091】
図14は、第2の実施形態に係るヘッダ範囲特定処理の説明に供する図である。
図14に示す入力表56は、検索部34により検索された複数のセルとして、「キーB1」セル、「キーC1」セル、及び「キーD1」セルを含んでいる。
【0092】
図14に示す入力表56において、基準セルS21は一例として右下端に位置し、対角セルS22は一例として左上の対角に位置している。基準セルS21及び対角セルS22を含み、かつ、「キーB1」セル、「キーC1」セル、及び「キーD1」セルを含まない矩形領域(つまり、値の範囲)のうち、セル数が最大となる矩形領域を特定する。なお、基準セルS21の位置は、矩形領域の右下端に限定されるものではない。基準セルS21の位置は、矩形領域の左下端でもよいし、右上端、左上端でもよい。
【0093】
ステップ142では、特定部40が、一例として、
図14に示す入力表56から、ステップ140で特定した矩形領域を除いた範囲をヘッダ範囲として特定し、上述の
図3に示すステップ110にリターンする。
【0094】
本実施形態によれば、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のセルを含まない矩形領域からヘッダ範囲が特定される。このため、全てのキーとヘッダ範囲との関係を予め定義することなく、ヘッダ範囲が特定され、表に含まれるキー及びキーに対応する値が抽出される。
【0095】
以上、実施形態に係る情報処理装置の一例として画像形成装置を例示して説明した。実施形態は、画像形成装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【0096】
その他、上記実施形態で説明した画像形成装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0097】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0098】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【0099】
10A、10B画像形成装置
12 制御部
12A CPU
12B ROM
12C RAM
12D I/O
14 記憶部
14A 抽出処理プログラム
16 表示部
18 操作部
20 画像形成部
22 原稿読取部
24 通信部
30 解析部
32 取得部
34 検索部
36、40特定部
38 抽出部
50、52、56入力表
54 ヘッダ範囲