向整个列添加验证

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 担任开发者倡导者