データ検証
Microsoft Excel はワークシートデータの自動フィルタリングや検証に役立つ機能を提供しています。
データ検証 は、ワークシートに入力されたデータに関するルールを設定する機能です。たとえば、DATE という列には日付のみが含まれるようにし、別の列には数字のみが含まれるようにするなど、検証を使用してできることがあります。特定の範囲内の日付のみを含むようにすることもできます。データ検証を使用すると、ワークシート内のセルに入力される内容を制御できます。Aspose.Cells は、Microsoft Excel のデータ検証と自動フィルター機能を完全にサポートしています。この記事では、Microsoft Excel の機能の使用方法と、Aspose.Cells を使用したコードについて説明します。
データ検証の種類と実行
Microsoft Excel はさまざまな種類のデータ検証をサポートしています。それぞれの種類は、セルまたはセル範囲に入力されるデータの種類を制御するために使用されます。以下は、それぞれの種類を確認するためのコードスニペットの例です。
- 整数であること、つまり、小数部がないことを検証します。
- 小数点数が正しい構造に従うことを検証します。コード例で、セル範囲に対して小数部が 2 つあることを定義します。
- 値が特定の値のリストに制限されることを検証します。リスト検証では、セルまたはセル範囲に適用できる別々の値リストを定義します。
- 日付が特定の範囲内にあることを検証します。
- 時間が特定の範囲内にあることを検証します。
- テキストが指定の文字数範囲内にあることを検証します。
Microsoft Excel でデータ検証
Microsoft Excel を使用して検証を作成するには:
-
ワークシートで、検証を適用したいセルを選択します。
-
データ メニューから 検証 を選択します。 検証のダイアログが表示されます。
-
設定 タブをクリックして、以下に示すように設定を入力します。
データ検証の設定
Aspose.Cells を使用したデータ検証
データ検証は、ワークシートに入力された情報を検証するための強力な機能です。データ検証を使用すると、開発者はユーザーに選択肢のリストを提供したり、データの入力を特定のタイプやサイズに制限したりすることができます。 Aspose.Cellsでは、各Worksheetクラスには、Validationsオブジェクトがあり、これはValidationオブジェクトのコレクションを表します。検証を設定するには、いくつかのValidationクラスのプロパティを設定します:
- Type: 検証タイプを表し、ValidationType列挙型の事前定義された値の1つを使用して指定できます。
- Operator: 検証で使用する演算子を表し、OperatorType列挙型の事前定義された値の1つを使用して指定できます。
- Formula1: データ検証の最初の部分に関連付けられた値や式を表します。
- Formula2: データ検証の2番目の部分に関連付けられた値や式を表します。
Validationオブジェクトのプロパティが構成されたら、開発者は作成した検証を使用して検証されるセル範囲に関する情報を保存するためにCellArea構造を使用できます。
データ検証の種類
データ検証を使用すると、各セルにビジネスルールを組み込み、不正確なエントリがエラーメッセージを引き起こすようにすることができます。ビジネスルールとは、ビジネスが運営される方法を規定する方針と手順です。Aspose.Cellsはすべての重要なデータ検証の種類をサポートしています。
ValidationType列挙型には、次のメンバーがあります:
メンバー名 | 説明 |
---|---|
ANY_VALUE | :すべてのタイプの値を示します。 |
WHOLE_NUMBER | :整数の検証タイプを示します。 |
DECIMAL | :10進数の検証タイプを示します。 |
LIST | :ドロップダウンリストの検証タイプを示します。 |
DATE | :日付の検証タイプを示します。 |
TIME | :時間の検証タイプを示します。 |
TEXT_LENGTH | :テキストの長さの検証タイプを示します。 |
CUSTOM | :カスタム検証のタイプを示します。 |
プログラミングサンプル: 整数のデータ検証
このタイプの検証では、ユーザーは検証済みのセルに指定された範囲内の整数のみを入力できます。次に示すコード例は、WHOLE_NUMBER検証タイプを実装する方法を示しています。例では、Microsoft Excelを使用して作成したものと同じデータ検証をAspose.Cellsを使用して作成します。
プログラミングサンプル: 10進数のデータ検証
このタイプの検証では、ユーザーは検証済みのセルに10進数を入力できます。例では、ユーザーは10進数の値のみを入力するように制限され、検証領域はA1:A10です。
プログラミングサンプル: リストのデータ検証
このタイプの検証では、ユーザーはドロップダウンリストから値を入力できます。一連のデータを含む行のリストが提供されます。ユーザーはリストからの値のみを選択できます。検証領域は、最初のワークシートのセル範囲A1:A5です。
ここで重要なのは、Validation.setInCellDropDownプロパティをtrueに設定することです。
プログラミングサンプル: 日付のデータ検証
このタイプの検証では、ユーザーは検証済みのセルに特定の範囲内の日付値、または特定の条件を満たす日付値を入力できます。例では、ユーザーは1970年から1999年の間の日付を入力することに制限されます。ここでは、検証領域はB1セルです。
プログラミングサンプル: 時間のデータ検証
このタイプの検証では、ユーザーは検証済みのセルに特定の範囲内の時刻、または特定の条件を満たす時刻を入力できます。例では、ユーザーは午前09:00から11:30の間の時間のみを入力するように制限されます。ここでは、検証領域はB1セルです。
プログラミングサンプル:テキスト長データ検証
このタイプの検証を使用すると、ユーザーは検証されたセルに指定された長さのテキスト値を入力できます。例では、ユーザーは5文字を超えない文字列値を入力することが制限されています。検証エリアはB1セルです。
データ検証ルール
データ検証が実装された場合、検証はセルに異なる値を割り当ててチェックできます。Cell.GetValidationValue() を使用して検証結果を取得できます。次の例は、異なる値でこの機能を実証しています。テスト用にサンプルファイルを以下のリンクからダウンロードできます:
SampleDataValidationRules.xlsx
サンプルコード
セルの検証がドロップダウンかどうかをチェックする
セル内に実装できる検証の多くの種類があることが分かりました。検証がドロップダウンかどうかをチェックしたい場合は、Validation.InCellDropDown プロパティを使用してテストできます。次のサンプルコードは、このプロパティの使用法を実証しています。テスト用のサンプルファイルを以下のリンクからダウンロードできます:
sampleDataValidationRules.xlsx
既存の検証にCellAreaを追加
既存のValidation にCellArea を追加したい場合があります。Validation.AddArea(CellArea cellArea) を使用してCellArea を追加すると、Aspose.Cells は新しいエリアを既存のエリアとチェックします。ファイルに多数の検証がある場合、パフォーマンスに影響します。これを克服するために、API はValidation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge) メソッドを提供しています。checkIntersection パラメータは、既存の検証エリアとの交差をチェックするかどうかを示します。これをfalseに設定すると、他のエリアのチェックが無効になります。checkEdge パラメータは、適用されたエリアをチェックするかどうかを示します。新しいエリアが左上のエリアになる場合、内部設定が再構築されます。新しいエリアが左上のエリアでないことが確実な場合は、このパラメータをfalse に設定できます。
Validation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge) メソッドを使用して既存のValidation に新しいCellArea を追加する方法を示す次のコードスニペット:
ソースエクセルファイルと出力エクセルファイルが添付されています。