1

在我当前的项目中,我需要在整个列上创建一个带有列表验证的 excel 文件。谷歌搜索出现以下两个结果:

http://www.aspose.com/docs/display/cellsnet/Working+with+Validations+in+Columns
这指的是实际上具有 worksheet.Columns[n].Validations 属性的 aspose.cells.griddesktop。Aspose.Cells 没有。

http://www.aspose.com/docs/display/cellsjava/Data+Filtering+and+Validation 所有示例都使用需要开始行和结束行的 CellArea。

我错过了什么?

4

2 回答 2

3

这是覆盖整列的另一种方法。

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

于 2018-06-20T08:20:02.550 回答
3

有两种类型的 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 担任开发人员布道师

于 2015-09-08T17:03:17.170 回答