データ検証
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)を使用すると、Aspose.Cellsは既存のエリアをすべて確認して、新しいエリアが既に存在しているかどうかを確認します。ファイルに大量のバリデーションがある場合、パフォーマンスに影響します。これを回避するために、APIはValidation.AddAreaCellArea(cellArea, checkIntersection, checkEdge)メソッドを提供します。checkIntersection パラメータは、指定したエリアと既存のバリデーションエリアの交差を確認するかどうかを示します。false
に設定すると、他のエリアの確認が無効になります。 checkEdge パラメータは、適用済みのエリアを確認するかどうかを示します。新しいエリアが左上のエリアになる場合、内部設定が再構築されます。新しいエリアが左上のエリアでないと確信している場合は、このパラメータを false に設定できます。
以下のコードスニペットは、Validation.AddAreaCellArea メソッドを使用して、既存のValidationに新しいCellAreaを追加する例です。
ソースエクセルファイルと出力エクセルファイルが添付されています。