向整个列添加验证
Add validation to entire column
在我当前的项目中,我需要创建一个 excel 文件,其中包含对整个列的列表验证。谷歌搜索出现以下两个结果:
http://www.aspose.com/docs/display/cellsnet/Working+with+Validations+in+Columns
这是指 aspose.cells.griddesktop 实际上有 worksheet.Columns[n].Validations 属性。 Aspose.Cells 没有。
http://www.aspose.com/docs/display/cellsjava/Data+Filtering+and+Validation
所有示例都使用需要开始行和结束行的 CellArea。
我错过了什么吗?
有两种类型的 excel 格式。一种是较旧的 XLS 格式,另一种是较新的 XLSX 格式。 XLS 格式的列内行数是 65536,XLSX 格式是 1048576。所以你可以使用以上两个值来覆盖你在 CellArea 中的整个列。
您也可以使用CellArea.CreateCellArea()静态方法轻松创建单元格区域对象
对于XLS格式,下面的CellArea代码覆盖了整个A列
CellArea ca = CellArea.CreateCellArea("A1", "A65536");
对于XLSX格式,下面的CellArea代码覆盖了整个A列
CellArea ca = CellArea.CreateCellArea("A1", "A1048576");
注意:我在 Aspose 担任开发人员布道师
这是覆盖整个专栏的另一种方法。
// Cover entire column A
CellArea ca = CellArea.CreateCellArea("A", "A");
这将适用于 XLS 和 XLSX 格式。
请查看下面的示例代码,最后执行它并阅读它的注释。您将获得两个输出 Excel 文件。一个是 XLS 格式,另一个是 XLSX 格式。
现在在这些单元格中输入 200(或任何大于 100 的值),您将收到验证错误。
- A65536
- A1048576
C#
// Create workbook
Workbook workbook = new Workbook();
// Accessing the Validations collection of the worksheet
ValidationCollection validations = workbook.Worksheets[0].Validations;
// Cover entire column A
CellArea ca = CellArea.CreateCellArea("A", "A");
// Creating a Validation object
Validation validation = validations[validations.Add(ca)];
// Setting the validation type to whole number
validation.Type = ValidationType.WholeNumber;
// Setting the operator for validation to Between
validation.Operator = OperatorType.Between;
// Setting the minimum value for the validation
validation.Formula1 = "10";
// Setting the maximum value for the validation
validation.Formula2 = "100";
// Save in XLS format
workbook.Save("output.xls", SaveFormat.Excel97To2003);
// Remove the area of validation and add it again
validation.RemoveArea(ca);
validation.AddArea(ca);
// Save in XLSX format
workbook.Save("output.xlsx");
注意:我在 Aspose 担任开发者倡导者
在我当前的项目中,我需要创建一个 excel 文件,其中包含对整个列的列表验证。谷歌搜索出现以下两个结果:
http://www.aspose.com/docs/display/cellsnet/Working+with+Validations+in+Columns
这是指 aspose.cells.griddesktop 实际上有 worksheet.Columns[n].Validations 属性。 Aspose.Cells 没有。
http://www.aspose.com/docs/display/cellsjava/Data+Filtering+and+Validation 所有示例都使用需要开始行和结束行的 CellArea。
我错过了什么吗?
有两种类型的 excel 格式。一种是较旧的 XLS 格式,另一种是较新的 XLSX 格式。 XLS 格式的列内行数是 65536,XLSX 格式是 1048576。所以你可以使用以上两个值来覆盖你在 CellArea 中的整个列。
您也可以使用CellArea.CreateCellArea()静态方法轻松创建单元格区域对象
对于XLS格式,下面的CellArea代码覆盖了整个A列
CellArea ca = CellArea.CreateCellArea("A1", "A65536");
对于XLSX格式,下面的CellArea代码覆盖了整个A列
CellArea ca = CellArea.CreateCellArea("A1", "A1048576");
注意:我在 Aspose 担任开发人员布道师
这是覆盖整个专栏的另一种方法。
// Cover entire column A
CellArea ca = CellArea.CreateCellArea("A", "A");
这将适用于 XLS 和 XLSX 格式。
请查看下面的示例代码,最后执行它并阅读它的注释。您将获得两个输出 Excel 文件。一个是 XLS 格式,另一个是 XLSX 格式。
现在在这些单元格中输入 200(或任何大于 100 的值),您将收到验证错误。
- A65536
- A1048576
C#
// Create workbook
Workbook workbook = new Workbook();
// Accessing the Validations collection of the worksheet
ValidationCollection validations = workbook.Worksheets[0].Validations;
// Cover entire column A
CellArea ca = CellArea.CreateCellArea("A", "A");
// Creating a Validation object
Validation validation = validations[validations.Add(ca)];
// Setting the validation type to whole number
validation.Type = ValidationType.WholeNumber;
// Setting the operator for validation to Between
validation.Operator = OperatorType.Between;
// Setting the minimum value for the validation
validation.Formula1 = "10";
// Setting the maximum value for the validation
validation.Formula2 = "100";
// Save in XLS format
workbook.Save("output.xls", SaveFormat.Excel97To2003);
// Remove the area of validation and add it again
validation.RemoveArea(ca);
validation.AddArea(ca);
// Save in XLSX format
workbook.Save("output.xlsx");
注意:我在 Aspose 担任开发者倡导者