ワークシートでの検証の操作

検証モード

Aspose.Cells.GridDesktop では、次の 3 つの検証モードがサポートされています。

  • 検証モードが必要です
  • 正規表現検証モード
  • カスタム検証モード

検証モードが必要です

この検証モードでは、ユーザーは指定されたセルに値を入力することが制限されます。一度検証が必要ですがワークシート セルに適用されると、ユーザーはそのセルに値を入力する必要があります。

正規表現検証モード

このモードでは、ユーザーが特定の形式でデータをセルに送信できるように、ワークシートのセルに制限が適用されます。データ形式のパターンは、正規表現.

カスタム検証モード

使用するにはカスタム検証、開発者は Aspose.Cells.GridDesktop.ICustomValidation インターフェイスを実装する必要があります。インターフェイスは、検証方法。データが有効な場合、このメソッドは true を返し、それ以外の場合は false を返します。

Aspose.Cells.GridDesktop での検証の操作

検証の追加

ワークシート セルに任意の種類の検証を追加するには、次の手順に従ってください。

  • Aspose.Cells.GridDesktop コントロールを
  • 任意のアクセスワークシート
  • 必要な検証を検証のコレクションワークシートどの検証をどのセルに適用するかを指定します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
// Adding values to specific cells of the worksheet
sheet.Cells["a2"].Value = "Required";
sheet.Cells["a4"].Value = "100";
sheet.Cells["a6"].Value = "2006-07-21";
sheet.Cells["a8"].Value = "101.2";
// Adding Is Required Validation to a cell
sheet.Validations.Add("a2", true, "");
// Adding simple Regular Expression Validation to a cell
sheet.Validations.Add("a4", true, @"\d+");
// Adding complex Regular Expression Validation to a cell
sheet.Validations.Add("a6", true, @"\d{4}-\d{2}-\d{2}");
// Adding Custom Validation to a cell
sheet.Validations.Add("a8", new CustomValidation());

ICustomValidation の実装

上記のコード スニペットでは、カスタム検証を追加しています。A8cell ですが、そのカスタム検証はまだ実装していません。このトピックの冒頭で説明したように、カスタム検証を適用するには、実装する必要がありますICustomValidationインターフェース。それでは、実装するクラスを作成してみましょうICustomValidationインターフェース。

以下のコード スニペットでは、次のチェックを実行するカスタム検証を実装しています。

  • 検証が追加されたセルのアドレスが正確かどうかを確認します
  • セルの値のデータ型が double かどうかを確認します
  • セルの値が 100 より大きいかどうかを確認します
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implementing ICustomValidation interface
public class CustomValidation : Aspose.Cells.GridDesktop.ICustomValidation
{
// Implementing Validate method already defined in the interface
public bool Validate(Worksheet worksheet, int row, int col, object value)
{
// Checking the cell's address
if (row == 7 && col == 0)
{
//Checking the data type of cell's value
double d = 0;
try
{
d = (double)value;
}
catch
{
return false;
}
// Checking if the cell's value is greater than 100
if (d > 100)
return true;
}
return false;
}
}

検証へのアクセス

検証が特定のワークシート セルに追加されると、開発者は実行時に特定の検証の属性にアクセスして変更する必要がある場合があります。したがって、Aspose.Cells.GridDesktop により、開発者はこのタスクを簡単に実行できるようになりました。

特定の検証にアクセスするには、次の手順に従ってください。

  • 希望のアクセスワークシート
  • 特定の検証検証が適用されたセル名を指定して、ワークシートで
  • 編集検証必要に応じて属性
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Accessing the Validation object applied on "a8" cell
Aspose.Cells.GridDesktop.Data.GridValidation validation = sheet.Validations[7, 0];
// Editing the attributes of Validation
validation.IsRequired = true;
validation.RegEx = "";
validation.CustomValidation = null;
MessageBox.Show("Validation has been edited after accessing it.");
}
else
{
MessageBox.Show("No validations found to access.");
}

検証の削除

ワークシートから特定の検証を削除するには、次の手順に従ってください。

  • 希望のアクセスワークシート
  • 特定の検証からワークシート検証が適用されたセル名を指定することによって
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Removing the Validation object applied on "a6" cell
sheet.Validations.RemoveAt(1);
MessageBox.Show("Validation has been removed.");
}
else
{
MessageBox.Show("No validations found to remove.");
}