如何判断?
如下图中,如何判断当前的sheet中有无效的数据,而且最好能得出有几个无效的,并能逐一定位回复 1楼zjutwb的帖子
可以使用 DataValidator 实现这个Case,测试代码如下:
public MainPage()
{
InitializeComponent();
gcSpreadSheet1.HighlightInvalidData = true;
var valid = GrapeCity.Windows.SpreadSheet.Data.DataValidator.CreateListValidator("5,10,15,20");
gcSpreadSheet1.Sheets.Cells.DataValidator = valid;
gcSpreadSheet1.Sheets.Cells.Text = "5, 10, 15, and 20 are valid numbers.";
var valid1 = GrapeCity.Windows.SpreadSheet.Data.DataValidator.CreateNumberValidator(GrapeCity.Windows.SpreadSheet.Data.ComparisonOperator.GreaterThan, "5", "20", true);
gcSpreadSheet1.Sheets.Cells.DataValidator = valid1;
gcSpreadSheet1.Sheets.Cells.Text = "A number greater than 5 is valid.";
var valid2 = GrapeCity.Windows.SpreadSheet.Data.DataValidator.CreateTextLengthValidator(GrapeCity.Windows.SpreadSheet.Data.ComparisonOperator.GreaterThan, "4", "20");
gcSpreadSheet1.Sheets.Cells.DataValidator = valid2;
gcSpreadSheet1.Sheets.Cells.Text = "Type more than four characters.";
}
List<Cell> cells = new List<Cell>();
private void gcSpreadSheet1_ValidationError(object sender, GrapeCity.Windows.SpreadSheet.UI.ValidationErrorEventArgs e)
{
cells.Add(this.gcSpreadSheet1.ActiveSheet.Cells);
}
是把有错误的cell放进cells里,再查看cells吗?那么,像上面的例子里,我修改了2个,还有一个错误,会自动更新吗?根据你做的测试还有点问题,弱弱的问下,在哪里怎么调用gcSpreadSheet1_ValidationError(object sender, GrapeCity.Windows.SpreadSheet.UI.ValidationErrorEventArgs e)函数? 回复 3楼zjutwb的帖子
我理解你的问题如下:
1.使单元格具有校验功能。
Spread 提供 DataValidator 类用于校验数据,如果错误则在单元格上用红色椭圆标注
2.记录错误数据位置,用于定位单元格。
List<Cell> cells 用于记录错误单元格信息,便于定位。
当你在单元格中输入数据不满足DataValidator 实例校验规则时,则触发ValidationError事件。
以上你可以使用 2# 代码创建新工程测试,在Cells输入“1”查看效果。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062 使单元格具有校验功能这个没问题,就是下面判断当前sheets是否有无效数字还没解决,是用cells.count来判断吗? 怎么用cells? 回复 5楼zjutwb的帖子
是的,你理解的是正确的。
可以在 ValueChanged事件中结合 gcSpreadSheet1.Sheets.IsValid(1, 1, 10)方法进行List中错误项的移除, ValidationError 事件进行list错误项的添加。
页:
[1]