C# Excel数据有效性

在Excel中,我们可以使用数据有效性功能来定义哪些数据可以被输入到工作表的单元格中,例如,限制输入的数据为一定范围内的数字或使用下拉列表来限制用户可选择的数据等。这篇文章主要分享如何使用C#编程的方式来实现Excel的数据有效性功能。

一、数字有效性

限制数据输入范围为1-10之间的数字

1.创建一个新的Excel工作薄并获取它的第一个工作表。

  1. Workbook wb = new Workbook();
  2. Worksheet sheet = wb.Worksheets[];

2.在单元格B9中输入一些文本并设置格式。

  1. sheet.Range["B9"].Text = "请输入数字:";
  2. sheet.Range["B9"].Style.Font.IsBold = true;
  3. sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

3.应用数字有效性到单元格C9。

  1. sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;
  2. sheet.Range["C9"].DataValidation.Formula1 = "";
  3. sheet.Range["C9"].DataValidation.Formula2 = "";
  4. sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;
  5. sheet.Range["C9"].DataValidation.InputMessage = "请在该单元格中输入1-10之间的数字.";
  6. sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;

效果图:

二、列表有效性

限制数据输入为下拉列表中的选项

在单元格B2中输入一些文本并设置格式。

  1. sheet.Range["B2"].Text = "部门:";
  2. sheet.Range["B2"].Style.Font.IsBold = true;
  3. sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

应用列表有效性到单元格C2:

  1. sheet.Range["C2"].DataValidation.Values = new string[] { "销售", "人力资源", "研发", "财务" };
  2. sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;
  3. sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;

效果图:

三、自定义数据有效性错误提示信息/警告

数据有效性应用到单元格以后,不符合要求的数据将不能成功的在该单元格内输入,如果强行输入不符合要求的数据,Excel将会提示如下错误信息:

如果不想使用Excel默认的错误提示信息,可以使用如下代码来自定义错误信息的提示内容:

  1. sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;
  2. sheet.Range["C2"].DataValidation.ShowError = true;
  3. sheet.Range["C2"].DataValidation.ErrorTitle = "错误001";
  4. sheet.Range["C2"].DataValidation.ErrorMessage = "请从下拉列表中选择一个项目";

效果图:

完整代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Spire.Xls;
  6.  
  7. namespace Apply_data_validation_to_excel_cells
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Workbook wb = new Workbook();
  14. Worksheet sheet = wb.Worksheets[];
  15.  
  16. //应用数字有效性
  17. sheet.Range["B9"].Text = "请输入数字:";
  18. sheet.Range["B9"].Style.Font.IsBold = true;
  19. sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;
  20.  
  21. sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;
  22. sheet.Range["C9"].DataValidation.Formula1 = "";
  23. sheet.Range["C9"].DataValidation.Formula2 = "";
  24. sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;
  25. sheet.Range["C9"].DataValidation.InputMessage = "请在该单元格中输入1-10之间的数字.";
  26. sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;
  27.  
  28. //应用列表有效性
  29. sheet.Range["B2"].Text = "部门:";
  30. sheet.Range["B2"].Style.Font.IsBold = true;
  31. sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;
  32.  
  33. sheet.Range["C2"].DataValidation.Values = new string[] { "销售", "人力资源", "研发", "财务" };
  34. sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;
  35. sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;
  36.  
  37. //自定义数据有效性错误提示信息
  38. sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;
  39. sheet.Range["C2"].DataValidation.ShowError = true;
  40. sheet.Range["C2"].DataValidation.ErrorTitle = "错误001";
  41. sheet.Range["C2"].DataValidation.ErrorMessage = "请从下拉列表中选择一个项目";
  42.  
  43. //保存文档并重启
  44. wb.SaveToFile("输出.xlsx",FileFormat.Version2010);
  45. System.Diagnostics.Process.Start("输出.xlsx");
  46. }
  47. }
  48. }

总结:

本文借助了一个免费的dll文件,仅介绍了添加数字和列表有效性的部分,如果感兴趣的话可以下载该dll文件,然后创建其他数据有效性类型如日期/时间及文本长度有效性等。

C# Excel数据有效性的更多相关文章

  1. Java设置Excel有效性

    XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("Excel"); String[] ...

  2. [转]用NPOI操作EXCEL--数据有效性

    本文转自:http://www.cnblogs.com/atao/archive/2009/09/22/1572170.html 在有些情况下(比如Excel引入),我们可能不允许用户在Excel随意 ...

  3. Excel开发学习笔记:文件选择控件、查找匹配项、单元格格式及数据有效性

    一个自用的基于excel的小工具. , ), .Cells(, ))          sysKpiRow.Interior.ColorIndex =  ).value = , )           ...

  4. excel 创建数据有效性及背景颜色

    需求:用excel做数据或者表格时经常需要在一列中给出固定的几个进行悬着,这是如果每次键盘输入降低工作效率.如果做成鼠标双击进行选择,则提高很多效率,比如需要给一列填写Pass或Failure时,具体 ...

  5. 个人永久性免费-Excel催化剂功能第60波-数据有效性验证增强版,补足Excel天生不足

    Excel在数据处理.数据分析上已经是公认的最好用的软件之一,其易用性和强大性也吸引无数的初中高级用户每天都在使用Excel.但这些优点的同时,也带出了一些问题,正因为其不同于一般的专业软件,需要专业 ...

  6. Excel 如何引用某表格中的某一列作为数据有效性验证

    1. 首先把数据有效性的列表加入到某个表格中.如下图所示:此表格名称为表5 2. 然后定义名称:公式--定义名称 如下填入信息: 3. 然后再数据有效性验证中输入如下信息即可:

  7. Excel设置数据有效性实现单元格下拉菜单的3种方法(转)

    http://blog.csdn.net/cdefu/article/details/4129136 一.直接输入: 1.选择要设置的单元格,譬如A1单元格: 2.选择菜单栏的“数据”→“有效性”→出 ...

  8. poi操作excel设置数据有效性

    private void setDataValidationList(short firstRow,short endRow,short firstCol, short endCol,String d ...

  9. java poi excel操作 下拉菜单 及数据有效性

    1 private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IO ...

随机推荐

  1. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  2. 火焰图分析openresty性能瓶颈

    注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

  3. centos7+mono4+jexus5.6.2安装过程中的遇到的问题

    过程参考: http://www.linuxdot.net/ http://www.jexus.org/ http://www.mono-project.com/docs/getting-starte ...

  4. Android ViewPager打造3D画廊

    本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 网上有很多关于使用Gallery来打造3D画廊的博客,但是在关于Gallery的官方说法中表明: This cl ...

  5. gitHub使用入门和github for windows的安装教程

    在看这篇教程之前我想大家也在搜索怎样使用gitHub托管自己的项目,在使用gitHub之前我也遇到过各种问题,在网上我也搜索了很多,但总觉得网上搜索到的东西很多很杂,有的根本不知道是在表达什么.在这过 ...

  6. 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~

    一.写在前面 自使用android studio开始,就被它独特的依赖方式:compile 'com.android.support:appcompat-v7:25.0.1'所深深吸引,自从有了它,麻 ...

  7. BPM应用开发解决方案分享

    一.需求分析企业整体管理是一个完整的体系,如果 把这个体系比做一个拼图,企业信息化通过各个业务系统覆盖了一部分业务. 企业通过采购实施通用软件的方式,覆盖了企业的核心业务和专业化业务然而系统只满足了部 ...

  8. 电脑新建svn仓库

    步骤1:安转svg: 注意事项: 安装的时候选择:Modify 安装到以下图片的步骤时: 黄色区域选择: 步骤2:新建svn仓库文件夹(本教程例子:D:\svn-5gpos),选择文件夹右键,点击下图 ...

  9. Linux Socket 网络编程

    Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后 ...

  10. Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数

    11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...