ワークシートでの検証の操作
検証モード
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."); | |
} |