> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# テーブルブロックを選択し、列の検索条件を指定する

> Table 要素をそのテーブルブロックに関連付け、列の検索条件を設定します: 列名のキーワード検出、内容タイプ の確認、境界。

要素の**プロパティ ダイアログ**の**Columns**タブでは、現在の**Table** 要素に関連付けるテーブルブロックを選択できます。

<Frame>
  <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Columns_tab.gif?fit=max&auto=format&n=fmgRWFNHKYN2MLSg&q=85&s=7ea8ba79b7efd39d6e48b6aac89b4f4c" alt="ABBYY FlexiLayout Studio における Table 要素の プロパティ ダイアログの Columns タブのスクリーンショット。" width="431" height="455" data-path="images/flexi-capture/fls/Columns_tab.gif" />
</Frame>

## <a id="tableblock" />テーブルブロックを選択する

各 **Table** 要素は、検出対象の **テーブルブロック** に対応している必要があります。**テーブルブロック** を選択するには、**Select** ボタンをクリックし、現在の **Table** 要素に対応する **テーブルブロック** を選択します。そのブロックのすべての列の一覧が **List1** フィールドに表示されます。各列のプロパティを設定します。プログラムは、列を検索するときにこれらのプロパティを検索条件として使用します。

要素の **プロパティ ダイアログ** の **Columns** タブに表示される列の一覧は、このダイアログでは編集できません。一覧を編集するには、ブロックの **プロパティ ダイアログ** を開きます。

要素と対応するブロックがどのように関連しているかを理解するために、次の点を考えてみてください。**テーブルブロック** は FlexiLayout とデータ抽出アプリケーションの間のインターフェイスとして機能し、**Table** 要素はそのインターフェイスの実装です。**Table** 要素には、**テーブルブロック** を見つけるための指示が含まれています。どのインターフェイスに対しても、複数のプログラム実装を作成できます。同様に、1 つの **テーブルブロック** に対して複数の **Table** 要素を作成できますが、その逆はできません。

要素の **Columns** タブで **テーブルブロック** を選択すると、プログラムは既定で **テーブルブロック** 内の列の名前と順序を使用して、各列の検索条件と列の順序を設定します。詳細については、[テーブル列の検索条件を設定する](/ja/flexi-capture/fls/tables/column#column) および [テーブル列の順序](/ja/flexi-capture/fls/tables/order) を参照してください。

<div id="disable-a-table-column">
  ## テーブルの列を無効にする
</div>

FlexiLayout をテストする際に、FlexiLayout から列を完全に削除せずに、その列を無効にする必要が生じることがあります。列を無効にしても、FlexiLayout 内のその列に関する情報はすべて保持されますが、FlexiLayout のテスト時にはその列を無視するようプログラムに指示されます。列を無効にするには、**List1** field でその列を選択し、**Disable** をクリックします。すると、列名の横にあるチェック マークが外れます。列を有効にするには、リストでその列名を選択し、**Enable** をクリックします。

<Note>
  列を無効にすると、**Order** タブ上のすべての順序リストでも自動的に無効になります。
</Note>

## <a id="column" />テーブル列の検索条件を設定する

テーブル列の検索条件は、列の**プロパティ**ダイアログで設定します。

列の**プロパティ**ダイアログを開くには、**List1**フィールドで列を選択し、フィールドの横にある\*\*プロパティ...\*\*ボタンをクリックします。

<Frame>
  <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Column_prop_dlg.gif?fit=max&auto=format&n=fmgRWFNHKYN2MLSg&q=85&s=d57266fec1e2c9eab57e94b335fd2023" alt="ABBYY FlexiLayout Studio の［列のプロパティ］ダイアログのスクリーンショット。ここでテーブル列の検索条件を設定します。" width="462" height="377" data-path="images/flexi-capture/fls/Column_prop_dlg.gif" />
</Frame>

テーブルヘッダー内にある列名は、列の検出において重要な役割を果たします。プログラムが列名を検出しやすくするために、ヘッダーに含まれるキーワードを使用できます。あるいは、別の要素を基準にして列名を検出することもできます。その場合、その要素の領域も列名の領域と見なされます。

<div id="use-keywords-to-detect-column-names">
  ### キーワードを使用して列名を検出する
</div>

キーワードで列名を検出するには、**Detect by keyword in name** オプションを選択します。下のfieldに、テスト画像上の列名に含まれるキーワードまたは語句を入力します。各キーワードを入力したら **Enter** キーを押します。

列名の検索時に完全な単語だけを使用するには、**Whole words only** オプションを選択します。

幅の狭い列では、名前内の単語が次の行に折り返されることがよくあります。そのような列名を検出するには、**Multi-line name** オプションを選択します。

同じ列でも画像によって名前が異なることがあるため、キーワードのリストには実際に現れる可能性のあるすべての候補を含める必要があります。ただし、画像によってはその列に名前がまったくない場合や、列自体が存在しない場合もあります。このため、列名は常に任意です。つまり、FlexiLayout を画像とマッチングする際に、列名が見つかる必要はありません。キーワードが見つからない場合 (実際に存在しない場合、または画質が Optical Character Recognition (OCR) に不十分な場合) は、仮説にペナルティが適用されます。つまり、その品質は、未検出のキーワードに対するヌル仮説の品質で乗算されます。仮説に対するペナルティは、**Missing keyword penalty** field で設定します。既定値は 0.97 です。

<div id="use-another-elements-region-to-detect-column-names">
  ### 別の要素の領域を使用して列名を検出する
</div>

すでに見つかっている要素を使って、列名を見つけることができます。これにより、キーワードに追加の検索条件を設定できます。また、このメソッドでは、**Static Text** だけでなく、**Character String**、**Inverted Text**、または単なる領域を検索対象にすることもできます。

すでに見つかっている要素を使って列名を見つけるには、**Use found element as column name** オプションを選択し、<img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Button_Search.gif?s=36d8764847225cffab245081f5274192" alt="検索ボタン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="31" height="18" data-path="images/flexi-capture/fls/Button_Search.gif" /> をクリックしてから、**Select Element** ダイアログで、その領域が列名の領域としても使用される要素を選択します。

<Note>
  列名の検出に使用する要素は、FlexiLayout ツリーで対象の **Table** 要素より上に配置されている必要があります。複数ページにまたがるテーブルを記述する場合は、列名の検索に繰り返し要素を使用します。複数ページにまたがるテーブルの詳細については、[複数ページにまたがるテーブルを検出する](/ja/flexi-capture/fls/tables/multipage-table)を参照してください。
</Note>

<div id="check-whether-the-column-was-detected-correctly">
  ### 列が正しく検出されているかどうかを確認する
</div>

列を検索する際、プログラムは列名に関する情報だけでなく、列の内容に関する情報も使用します。そのため、特定の列に特定の種類のデータが含まれていることがわかっている場合は、それを指定することで、プログラムがその列をより確実に検出できるようになります。FlexiLayout Studio で列内のデータ型を確認するには、**内容タイプを確認**オプションを選択し、**列の内容タイプ**フィールドで、その列に含まれている可能性が高いデータ型を、使用可能なものの中から 1 つ指定します。

* **テキスト**
* **通貨**
* **日付**
* **正規表現**
* **数値**

列内のデータ型が **列の内容タイプ**フィールドで指定したデータ型と一致しない場合、その仮説にはペナルティが適用されます。**内容欠落ペナルティ**フィールドには、列の内容が指定したデータ型に一致しない場合に、仮説の品質に乗算される係数が設定されます。

<div id="regular-expression-alphabet">
  ### 正規表現のアルファベット
</div>

**正規表現** 型を選択した場合は、列内のデータの形式を表す正規表現のコードを入力します。次のテーブルに、正規表現で使用できる記号を示します。

| リスト内の名前                   | field 内の記号 | 例                                                  |          |                                        |
| ------------------------- | ---------- | -------------------------------------------------- | -------- | -------------------------------------- |
| 任意の文字                     | \*         | "k"\*"t" – 'kit'、'kat' などを許可します。                   |          |                                        |
| Letter                    | C          | C"at" – cat、bat、Rat、mat などを許可します。                  |          |                                        |
| 大文字                       | A          | A"at" – Cat、Bat、Rat、Mat などを許可します。                  |          |                                        |
| 小文字                       | a          | a"at" – cat、bat、rat、mat などを許可します。                  |          |                                        |
| 文字または数字                   | X          | X – 任意の1文字の英字または数字を許可します。                          |          |                                        |
| 数字                        | N          | N"th" – 5th、4th、6th などを許可します。                      |          |                                        |
| 文字列                       | ""         | "cat"                                              |          |                                        |
| または                       |            |                                                    | "dr"("i" | "u")"nk" – "drink" または "drunk" を許可します。 |
| セット内の文字                   | \[]        | \[hm]"at" – 'hat' または 'mat' を許可します。                |          |                                        |
| セットに含まれない文字               | \[^]       | \[^b]"at" – 'cat'、'mat'、'rat' を許可しますが、bat は許可しません。 |          |                                        |
| 繰り返し回数は任意 (左側の式または部分式に適用) | \{-}       | \[AB74]\{-} – A、B、7、4 の任意の組み合わせを、任意の長さで許可します。      |          |                                        |
| 繰り返し回数は n                 | \{n}       | N\{2}"th" – 25th、84th、11th などを許可します。               |          |                                        |
| n 回から m 回まで繰り返し           | \{n-m}     | N\{1-3}"th" – 5th、84th、111th などを許可します。             |          |                                        |
| 0 回から n 回まで繰り返し           | \{-n}      | N\{-2}"th" – th、84th、4th などを許可します。                 |          |                                        |
| n 回以上繰り返し                 | \{n-}      | N\{2-}"th" – 25th、834th、311th、34576th などを許可します。    |          |                                        |
| 部分式                       | ()         |                                                    |          |                                        |

<div id="specify-the-search-area-coordinates">
  ### 検索領域の座標を指定する
</div>

列の左境界と右境界の検索領域の座標を指定できます。**Absolute area constraints** プロパティで、各検索領域の座標をそれぞれ **Left boundary** フィールドと **Right boundary** フィールドに入力します。
