データ検証

データ検証の種類と実行

データ検証は、ワークシートに入力されたデータに関するルールを設定する機能です。たとえば、「日付」と記載された列には日付のみが含まれるようにし、他の列には数字のみが含まれるようにすることができます。あるいは、「日付」と記載された列には特定の範囲内の日付のみが含まれるようにすることもできます。データ検証を使用すると、ワークシートのセルに入力される内容を制御することができます。

Microsoft Excel はさまざまな種類のデータ検証をサポートしています。それぞれの種類は、セルまたはセル範囲に入力されるデータの種類を制御するために使用されます。以下は、それぞれの種類を確認するためのコードスニペットの例です。

  • 数値が整数で、つまり小数部を持たないこと。
  • 小数点以下の桁に構造が正しいこと。コード例では、セルの範囲に2つの小数点以下があることを定義しています。
  • 一覧からの値に制限されていること。一覧の検証では、セルやセル範囲に適用する別々の値の一覧が定義されます。
  • 特定の範囲内の日付であること。
  • 特定の範囲内の時間であること。
  • 指定された文字長内のテキストであること。

Microsoft Excel でデータ検証

Microsoft Excel を使用して検証を作成するには:

  1. ワークシートで、検証を適用したいセルを選択します。
  2. データ メニューから 検証 を選択します。 検証のダイアログが表示されます。
  3. 設定 タブをクリックし、設定を入力します。

Aspose.Cells for Node.js via C++を用いたデータ検証

データ検証は、ワークシートに入力された情報を検証するための強力な機能です。データ検証を使用すると、開発者はユーザーに選択肢のリストを提供したり、データの入力を特定のタイプやサイズに制限したりすることができます。
Aspose.Cells for Node.js via C++の各Worksheetクラスには、getValidations()メソッドがあり、これはValidationオブジェクトのコレクションを表します。検証を設定するには、Validationクラスのいくつかのプロパティを次のように設定します。

  • 種類 – 検証タイプを表し、ValidationType列挙体の事前定義された値の1つを使用して指定できます。
  • オペレーター – 検証で使用されるオペレーターを表し、OperatorType列挙体の事前定義された値のいずれかを使用して指定できます。
  • Formula1:データ検証の最初の部分に関連付けられた値または式を表します。
  • Formula2:データ検証の2番目の部分に関連付けられた値または式を表します。

Validationオブジェクトのプロパティが設定されたら、開発者はCellArea構造体を使用して、作成された検証を使用して検証されるセル範囲に関する情報を格納できます。

データ検証の種類

ValidationType列挙体には次のメンバーがあります:

メンバー名 説明
AnyValue 任意の型の値を示します。
WholeNumber 整数の検証タイプを示します。
Decimal 10進数の検証タイプを示します。
List ドロップダウンリストの検証タイプを示します。
Date 日付の検証タイプを示します。
Time 時刻の検証タイプを示します。
TextLength テキストの長さの検証タイプを示します。
Custom カスタム検証タイプを示します。
整数データの検証

このタイプの検証では、ユーザーは指定された範囲内の整数のみを検証されたセルに入力できます。以下のコード例では、WholeNumber検証タイプの実装方法を示しています。例は、上記のMicrosoft Excelを使用して作成したのと同じデータ検証をAspose.Cells for Node.js via C++で作成します。

リストデータの検証

この種類の検証では、ユーザーはドロップダウンリストから値を入力できます。リストにはデータを含む一連の行があります。この例では、リストのソースを保持するために2番目のワークシートが追加されます。ユーザーはリストからのみ値を選択できます。検証エリアは最初のワークシートのセル範囲 A1:A5 です。

ここで重要なのは、Validation.setInCellDropDown(boolean)プロパティをtrueに設定することです。

日付データの検証

このタイプの検証では、ユーザーは検証済みのセルに特定の範囲内の日付値、または特定の条件を満たす日付値を入力できます。例では、ユーザーは1970年から1999年の間の日付を入力することに制限されます。ここでは、検証領域はB1セルです。

時間データの検証

このタイプの検証では、ユーザーは検証済みのセルに特定の範囲内の時刻、または特定の条件を満たす時刻を入力できます。例では、ユーザーは午前09:00から11:30の間の時間のみを入力するように制限されます。ここでは、検証領域はB1セルです。

テキスト長のデータ検証

このタイプの検証を使用すると、ユーザーは検証されたセルに指定された長さのテキスト値を入力できます。例では、ユーザーは5文字を超えない文字列値を入力することが制限されています。検証エリアはB1セルです。

データ検証ルール

データ検証が実装されると、セルに異なる値を割り当てて検証を確認できます。Cell.getValidationValue()を使用して検証結果を取得できます。以下の例では、異なる値を使用してこの機能を示しています。テスト用のサンプルファイルは以下のリンクからダウンロードできます:

sampleDataValidationRules.xlsx

セルの検証がドロップダウンであるかどうかをチェック

セルに実装できる検証の種類はさまざまです。検証がドロップダウンかどうかを確認したい場合は、Validation.getInCellDropDown()メソッドを使用してこれをテストできます。以下のサンプルコードはこのプロパティの使用例を示しています。テスト用のサンプルファイルは以下のリンクからダウンロードできます:

sampleValidation.xlsx

既存の検証にCellAreaを追加

既存のValidationCellAreaを追加したい場合があります。Validation.addArea(CellArea)を使用してCellAreaを追加すると、Aspose.Cellsは既存のすべての範囲を確認し、新しい範囲が既に存在しているかどうかを判断します。検証が多いファイルでは、パフォーマンスに影響を及ぼす可能性があります。これを回避するために、APIはValidation.addArea(CellArea, boolean, boolean)メソッドを提供しています。checkIntersectionパラメータは、指定された範囲と既存の検証範囲の交差を確認するかどうかを示します。これをfalseに設定すると、他の範囲のチェックが無効になります。checkEdgeパラメータは、適用された範囲をチェックするかどうかを示します。新しい範囲が左上の範囲になる場合、内部設定が再構築されます。新しい範囲が左上の範囲でないことが確実な場合、このパラメータをfalseに設定できます。

以下のコードスニペットは、Validation.addArea(CellArea, boolean, boolean)メソッドを使用して既存のValidationに新しいCellAreaを追加する例を示しています。

ソースエクセルファイルと出力エクセルファイルが添付されています。

ソースファイル

出力ファイル

高度なトピック