セルの値がデータ検証ルールを満たしているかを確認
Microsoft Excelでは、ユーザーはセルにデータ検証ルールを追加できます。たとえば、10から20までの数値しか入力できないようにする検証を追加します。ユーザーが異なる数値を入力した場合、Excelはエラーメッセージを表示して正しい範囲の数値を入力するよう促します。数値をコピーして貼り付けた場合、Excelは検証チェックを実行せず、エラーメッセージを表示しません。
時には、プログラムでセルに適用されたデータ検証ルールが値を満たしているかどうかを検証する必要があります。たとえば、上記の場合、エントリが失敗する必要があります。
紹介
Aspose.Cellsは、セルの値をプログラムで検証するためのCell.GetValidationValue()メソッドを提供しています。セルの値がそのセルに適用されたデータ検証ルールを満たさない場合、Falseを返し、満たす場合はTrueを返します。
次のサンプルコードは、Cell.GetValidationValue()メソッドの動作を説明しています。まず、C1に値3を入力します。これはデータ検証ルールを満たさないため、Cell.GetValidationValue()メソッドはFalseを返します。その後、C1に値15を入力します。この値はデータ検証ルールを満たすため、Cell.GetValidationValue()メソッドはTrueを返します。同様に、値30に対してはFalseを返します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate the workbook from sample Excel file | |
Workbook workbook = new Workbook(dataDir+ "sample.xlsx"); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Access Cell C1 | |
// Cell C1 has the Decimal Validation applied on it. | |
// It can take only the values Between 10 and 20 | |
Cell cell = worksheet.Cells["C1"]; | |
// Enter 3 inside this cell | |
// Since it is not between 10 and 20, it should fail the validation | |
cell.PutValue(3); | |
// Check if number 3 satisfies the Data Validation rule applied on this cell | |
Console.WriteLine("Is 3 a Valid Value for this Cell: " + cell.GetValidationValue()); | |
// Enter 15 inside this cell | |
// Since it is between 10 and 20, it should succeed the validation | |
cell.PutValue(15); | |
// Check if number 15 satisfies the Data Validation rule applied on this cell | |
Console.WriteLine("Is 15 a Valid Value for this Cell: " + cell.GetValidationValue()); | |
// Enter 30 inside this cell | |
// Since it is not between 10 and 20, it should fail the validation again | |
cell.PutValue(30); | |
// Check if number 30 satisfies the Data Validation rule applied on this cell | |
Console.WriteLine("Is 30 a Valid Value for this Cell: " + cell.GetValidationValue()); |
出力
Is 3 a Valid Value for this Cell: False
Is 15 a Valid Value for this Cell: True
Is 30 a Valid Value for this Cell: False