Aspose Cells 添加数据验证(动态下拉列表验证)

参考 :http://www.componentcn.com/kongjianjishu/kongjianjishu/2015-06-04/2781.html

Aspose Cells是一款操作和处理以及转换Excel文件的类库,支持.NET和JAVA版,几乎所有Excel能实现的功能,Aspose Cells都可以实现,Microsoft Excel支持多种不同类型的数据验证,每一种类型用于控制数据输入或者单元格范围,比如经常用到的:整数验证、小数位数验证、值范围验证、时间验证、文本字符长度验证等。

控件中国网Aspose Cells在中国的官方授权销售商和技术支持提供商,提供Aspose Cells控件下载、Aspose Cells授权、Aspose Cells正版产品销售等服务

在Aspose Cell要实现单元格的数据验证也是相对简单的,开发人员能够为用户提供一个选择列表、限制数据输入或者是指定数据的类型和大小,在Aspose Cell里,每个工作表类都有一个Validations对象,该对象包含了一系列验证对象,包含了下面的一些属性:

  • Type:用于表示验证类型,用于指定ValidationType枚举里的类型预定值
  • Operator:用于表示使用何种运算符或者运算规则,用于指定OperatorType枚举里的预定义值
  • Formula1:首选的验证公式和表达式
  • Formula2:次选的验证公式和表达式

数据验证类型,控件提供的ValidationType枚举有下列值:

  • AnyValue 指示一个值可以是任何类型
  • WholeNumber 指示验证类型只能是整数数字
  • Decimal 指示验证的类型只能是小数
  • List 指示验证的类型是下拉列表
  • Date 指示验证的类型是日期
  • Time 指示验证类型是时间
  • TextLength 指示验证的类型是文本长度
  • Custom 自定义验证类型

下面的事例介绍了,如何验证一定范围内的单元格输入只能是整数,具体代码如下:

ValidationCollection validations = workbook.Worksheets[0].Validations;

//Creating a Validation object
Validation validation = validations[validations.Add()];

//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 = "1000";

//Applying the validation to a range of cells from A1 to B2 using the
//CellArea structure
CellArea area;
area.StartRow = 0;
area.EndRow = 1;
area.StartColumn = 0;
area.EndColumn = 1;

//Adding the cell area to Validation
validation.AreaList.Add(area);

下面的事例介绍了如何使用小数数据验证:
// Create a workbook object.
Workbook workbook = new Workbook();

// Create a worksheet and get the first worksheet.
Worksheet ExcelWorkSheet = workbook.Worksheets[0];

// Obtain the existing Validations collection.
ValidationCollection validations = ExcelWorkSheet.Validations;

// Create a validation object adding to the collection list.
Validation validation = validations[validations.Add()];

// Set the validation type.
validation.Type = ValidationType.Decimal;

// Specify the operator.
validation.Operator = OperatorType.Between;

// Set the lower and upper limits.
validation.Formula1 = Decimal.MinValue.ToString();
validation.Formula2 = Decimal.MaxValue.ToString();

// Set the error message.
validation.ErrorMessage = "Please enter a valid integer or decimal number";

// Specify the validation area of cells.
CellArea area;
area.StartRow = 0;
area.EndRow = 9;
area.StartColumn = 0;
area.EndColumn = 0;

// Add the area.
validation.AreaList.Add(area);

// Set the number formats to 2 decimal places for the validation area.
for (int i = 0; i < 10; i++)
{
    ExcelWorkSheet.Cells[i, 0].GetStyle().Custom = "0.00";
}

// Save the workbook.
workbook.Save("d:\\test\\decimalvalidation.xls");

下面的事例介绍了List数据验证//注:用的较多
// Create a workbook object.
Workbook workbook = new Workbook();

// Get the first worksheet.
Worksheet worksheet1 = workbook.Worksheets[0];

// Add a new worksheet and access it.
int i = workbook.Worksheets.Add();
Worksheet worksheet2 = workbook.Worksheets[i];

// Create a range in the second worksheet.
Range range = worksheet2.Cells.CreateRange("E1", "E4");

// Name the range.
range.Name = "MyRange";

// Fill different cells with data in the range.
range[0, 0].PutValue("Blue");
range[1, 0].PutValue("Red");
range[2, 0].PutValue("Green");
range[3, 0].PutValue("Yellow");

// Get the validations collection.
ValidationCollection validations = worksheet1.Validations;

// Create a new validation to the validations list.
Validation validation = validations[validations.Add()];

// Set the validation type.
validation.Type = Aspose.Cells.ValidationType.List;

// Set the operator.
validation.Operator = OperatorType.None;

// Set the in cell drop down.
validation.InCellDropDown = true;

// Set the formula1.
validation.Formula1 = "此处是下拉列表中的数据,一般是以逗号分割的字符串";

// Enable it to show error.
validation.ShowError = true;

// Set the alert type severity level.
validation.AlertStyle = ValidationAlertType.Stop;

// Set the error title.
validation.ErrorTitle = "Error";

// Set the error message.
validation.ErrorMessage = "Please select a color from the list";

// Specify the validation area.
CellArea area;
area.StartRow = 0;
area.EndRow = 4;
area.StartColumn = 0;
area.EndColumn = 0;

// Add the validation area.
validation.AreaList.Add(area);

// Save the Excel file.
workbook.Save("d:\\test\\validationtypelist.xls");

下面的事例介绍了,如何使用日期验证:
// Create a workbook.
 Workbook workbook = new Workbook();

// Obtain the cells of the first worksheet.
 Cells cells = workbook.Worksheets[0].Cells;

// Put a string value into the A1 cell.
 cells["A1"].PutValue("Please enter Date b/w 1/1/1970 and 12/31/1999");

// Wrap the text.
 cells["A1"].GetStyle().IsTextWrapped = true;

// Set row height and column width for the cells.
 cells.SetRowHeight(0, 31);
 cells.SetColumnWidth(0, 35);

// Get the validations collection.
 ValidationCollection validations = workbook.Worksheets[0].Validations;

// Add a new validation.
 Validation validation = validations[validations.Add()];

// Set the data validation type.
 validation.Type = ValidationType.Date;

// Set the operator for the data validation
 validation.Operator = OperatorType.Between;

// Set the value or expression associated with the data validation.
 validation.Formula1 = "1/1/1970";

// The value or expression associated with the second part of the data validation.
 validation.Formula2 = "12/31/1999";

// Enable the error.
 validation.ShowError = true;

// Set the validation alert style.
 validation.AlertStyle = ValidationAlertType.Stop;

// Set the title of the data-validation error dialog box
 validation.ErrorTitle = "Date Error";

// Set the data validation error message.
 validation.ErrorMessage = "Enter a Valid Date";

// Set and enable the data validation input message.
 validation.InputMessage = "Date Validation Type";
 validation.IgnoreBlank = true;
 validation.ShowInput = true;

// Set a collection of CellArea which contains the data validation settings.
 CellArea cellArea;
 cellArea.StartRow = 0;
 cellArea.EndRow = 0;
 cellArea.StartColumn = 1;
 cellArea.EndColumn = 1;

// Add the validation area.
 validation.AreaList.Add(cellArea);

// Save the Excel file.
 workbook.Save("d:\\test\\datevalidation.xls");

下面的事例介绍了,如何使用文本长度验证:
// Create a new workbook.
Workbook workbook = new Workbook();

// Obtain the cells of the first worksheet.
Cells cells = workbook.Worksheets[0].Cells;

//Put a string value into A1 cell.
cells["A1"].PutValue("Please enter a string not more than 5 chars");

// Wrap the text.
cells["A1"].GetStyle().IsTextWrapped = true;

// Set row height and column width for the cell.
cells.SetRowHeight(0, 31);
cells.SetColumnWidth(0, 35);

// Get the validations collection.
ValidationCollection validations = workbook.Worksheets[0].Validations;

// Add a new validation.
Validation validation = validations[validations.Add()];

// Set the data validation type.
validation.Type = ValidationType.TextLength;

// Set the operator for the data validation.
validation.Operator = OperatorType.LessOrEqual;

// Set the value or expression associated with the data validation.
validation.Formula1 = "5";

// Enable the error.
validation.ShowError = true;

// Set the validation alert style.
validation.AlertStyle = ValidationAlertType.Warning;

// Set the title of the data-validation error dialog box.
validation.ErrorTitle = "Text Length Error";

// Set the data validation error message.
validation.ErrorMessage = " Enter a Valid String";

// Set and enable the data validation input message.
validation.InputMessage = "TextLength Validation Type";
validation.IgnoreBlank = true;
validation.ShowInput = true;

// Set a collection of CellArea which contains the data validation settings.
CellArea cellArea;
cellArea.StartRow = 0;
cellArea.EndRow = 0;
cellArea.StartColumn = 1;
cellArea.EndColumn = 1;

// Add the validation area.
validation.AreaList.Add(cellArea);

// Save the Excel file.
workbook.Save("d:\\test\\textlengthvalidation.xls");

时间: 2024-10-11 17:46:24

Aspose Cells 添加数据验证(动态下拉列表验证)的相关文章

C# 基于Aspose.Cells的数据导出到Excel

using Aspose.Cells; void WriteToExcel(string filePath, List<object[]> datas, string sheetName = "Sheet0") { try { Workbook workBook = new Workbook(); Worksheet sheet = workBook.Worksheets[0]; sheet.Name = sheetName; Aspose.Cells.Style styl

python---django中form组件(数据添加前使用自定义方法进行验证,以及源码分析)

form组件代码: from app02.models import Userfrom django.core.exceptions import ValidationError class AjaxForm(forms.Form): user = fields.CharField( required=True, min_length=3, max_length=7, ) email = fields.EmailField( required=True, ) #自定义方法 clean_字段名 #

thinkphp自动验证中的静态验证和动态验证和批量验证

1.静态定义 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 举例说明,我们在模型类里面定义了$_validate属性如下: class UserModel extends Model{ protected $_validate = array( array('verify','require','验证码必须!'), //默认情况下用正则进行验证 array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一 ar

(六)SSO之CAS框架扩展 改动CAS源代码实现与ESS动态password验证对接

题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添加安全性了. 正文: 对于安全性问题.我们怎样解决呢? 解决方式: 1.避免sql注入问题. 2.用户登录password加密. 3.使用https安全訪问方式. 4.使用第三方设备.像银行一般使用的password口令. 5.... 前三种方案是比較常见的.这里主要说第四种解决方式,我们在前三种方

(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接

题记: 偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了. 正文: 对于安全性问题,我们如何解决呢? 解决方案: 1.避免sql注入问题. 2.用户登录密码加密. 3.使用https安全访问方式. 4.使用第三方设备,像银行一般使用的密码口令. 5.... 前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网

利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序 HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据,难免会含有方便操作的 主键ID这列的记录.现在项目需要在easyUI的DataGrid中显示的数据能全部导出Excel,包括DataGrid中的中文标题,其他的统统不 要. 完成该功能所需的工具和环境:Newtonsoft.Json序列化和反序列化类库.easyUI前端UI框架.HttpHandl

wpf binging(五) 数据的转换与验证

1.数据的验证,有时候需要验证同步的数据是否正常 需要派生一个类 ValidationRule 再把这个类指定给binging 进行验证 在这里如果验证不通过 textbox就会变成红色并且发出警告数据将不会同步到数据源,但是警告UI并不可见 需要添加事件暴露出来 默认验证只对 UI改变数据源才出发验证,如果想 数据源改变UI也触发验证 如果想要 把验证错误以后报的错误,显示出来,需要添加 路由事件,路由事件会一直向上传播,如果被每个函数处理完成,消息就会终止 所以想捕获这条消息并且显示出来,需

Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)

一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等操作,我们将在onCreate 创建方法中创建一张表和插入相关的值,通过db.execSQL()完成Sqlite的运行. ①openHelper2.java文件: public class openHelper2 extends SQLiteOpenHelper { private static f

在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。

正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的'好'东西记录下来,一是加深印象:二是以后可以作为参考:三是希望博友们可以提出不足和可以优化的地方,一起讨论. 这个是我去一家公司没多久,让我做的小功能,主要是导出excel并在浏览器下载下来. 但是会有不同的细微的需求差别. 第一次发博客,有描述不清楚的地方还请见谅,希望各位多多指点. 进入正题 简单的需求描