C# Excel数据有效性

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化 DataV(企业版),20 个大屏 1 个月
简介: C# Excel数据有效性 在Excel中,我们可以使用数据有效性功能来定义哪些数据可以被输入到工作表的单元格中,例如,限制输入的数据为一定范围内的数字或使用下拉列表来限制用户可选择的数据等。这篇文章主要分享如何使用C#编程的方式来实现Excel的数据有效性功能。

C# Excel数据有效性

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

一、数字有效性

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

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

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

 

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

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

 

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

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

 

效果图:

     

                 

二、列表有效性

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

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

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

 

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

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

 

效果图:

 

 

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

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

 

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

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

 

效果图:

 

完整代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Xls;

namespace Apply_data_validation_to_excel_cells
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook wb = new Workbook();
            Worksheet sheet = wb.Worksheets[0];

            //应用数字有效性
            sheet.Range["B9"].Text = "请输入数字:";
            sheet.Range["B9"].Style.Font.IsBold = true;
            sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

            sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;
            sheet.Range["C9"].DataValidation.Formula1 = "1";
            sheet.Range["C9"].DataValidation.Formula2 = "10";
            sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;
            sheet.Range["C9"].DataValidation.InputMessage = "请在该单元格中输入1-10之间的数字.";
            sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;
 
            //应用列表有效性
            sheet.Range["B2"].Text = "部门:";
            sheet.Range["B2"].Style.Font.IsBold = true;
            sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

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

            //自定义数据有效性错误提示信息
            sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;
            sheet.Range["C2"].DataValidation.ShowError = true;
            sheet.Range["C2"].DataValidation.ErrorTitle = "错误001";
            sheet.Range["C2"].DataValidation.ErrorMessage = "请从下拉列表中选择一个项目"; 

            //保存文档并重启
            wb.SaveToFile("输出.xlsx",FileFormat.Version2010);
            System.Diagnostics.Process.Start("输出.xlsx");
        }
    }
}

 

总结:

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

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
目录
相关文章
|
15天前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
197 82
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
305 10
|
4月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
260 4
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
38 11
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
55 10
|
2月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
4月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
268 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
5月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
4月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
4月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
79 1