需求背景

最近项目中一个功能,需要用户以Excel文件的方式提供录入数据。为了避免用户误操作给后续的文件解析工作带来额外的巨大工作量,我们需要对Excel模板文件进行定制。以下图为例

具体要求如下

  • 锁定Excel样式,不能修改单元格样式和位置;
  • 限制特定单元格输入内容的格式,比如电话号码,日期等;
  • 不允许修改深灰色部分的表头,但是可以输入和修改浅灰色的单元格内容;

限制单元格输入格式

通过Excel的数据验证功能就可以实现在输入内容的同时进行校验,只有满足格式条件的数据才能保存。使用方法比较简单,首先选中你要校验的单元格(比如下图中的A列),然后点击【数据】菜单下的【数据验证】,根据具体的要求设置验证条件即可。

通过内置的验证条件,以及可以使用公式的自定义验证,我们可以对很多复杂的数据格式进行校验。因为我们项目中的实际需求不算太复杂,所以这篇文章中仅仅展示了部分Excel的功能。

日期

在数据验证的下拉框【允许】中,选择日期,然后指定一个范围。本例中指定了一个非常宽的范围,目的仅仅是为了保证用户输入的是一个合法的日期,不会出现2月30日这种手滑失误。

作为一个用户友好的程序,在用户输入出错的时候,应该给出一个明确的信息,指导用户修改错误。所以我们在设置了验证条件之后,还需要配置出错警告信息,当然如果一定要偷懒的话也可以省略这一步。如下图

整数和小数

数字类的验证比较类似,这里仅仅举一个例子,如下

手机号码

对于像身份证,电话号码这一类信息,没有现成的验证条件可以使用。不过Excel提供了自定义这种验证方式,可以通过写一个公式,来曲线救国完成复杂数据格式的验证。

还是以手机号码为例,本质上是要求输入一个11位长度的数字,那么我们就把验证拆分为同时成立的两个条件:

  1. 长度11位,公式 LEN(D1)=11
  2. 必须是数字,公式 ISNUMBER(D1)

如下图,我们在【允许】下拉框中选择【自定义】,然后在下方的【公式】里面输入公式

锁定样式

为了避免用户无意或者有意的修改Excel模板,我们需要对样式进行锁定。锁定之后的文件,用户只能在我们规定的单元格内输入内容,并且不能随意修改单元格样式。Excel提供的保护工作表功能可以帮助我们实现这个愿望,仅仅需要点几下鼠标,我们即可达成目标。

首先我们要选定不需要锁定的单元格,这里要解释一下,为啥是选不需要锁定?在本例中,浅灰色的单元格是录入区域,也是我们不需要锁定的部分。我们需要保护的是非录入区域,比如表头。Excel默认是对所有单元格开启了锁定选项的,所以我们要把非录入区域的锁定取消,否则用户就没法录入数据了。

如下图,我们选中所有浅灰色单元格,然后鼠标右键点击【设置单元格格式】。

在设置单元格格式窗口中,取消【锁定】。记住,默认是勾选的,一定要取消,一定要取消,一定要取消!

然后的任务就简单了,在【审核】菜单中找到并点击【保护工作表】,提供用于解锁的密码,大功告成。

PS:如果有更多特殊要求,可以修改允许此工作表的所有用户进行中的选项来完成更细粒度的控制。

转载于:https://juejin.im/post/5afc3083f265da0b9c10d28f

EXCEL破冰 - 锁定单元格样式和输入格式相关推荐

  1. EXCEL批量删除单元格样式

    2019独角兽企业重金招聘Python工程师标准>>> Sub 批量删除单元格样式() EX: For i = 1 To ActiveWorkbook.Styles.Count On ...

  2. POI导出excel并设置单元格样式和单元格内容中文自适应

    本案例生产环境真是案例POI导出: 开发环境:idea+mybaits3+spring4+springmvc4+maven3+mysql5.7 poi依赖: <dependency>< ...

  3. java poi操作excel 添加 锁定单元格保护

    Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类 ...

  4. java导出excel如何设置单元格样式为文本样式

    [color=green][b][size=medium]//新增的四句话,设置CELL格式为文本格式 HSSFCellStyle cellStyle2 = demoWorkBook.createCe ...

  5. POI 操作Excel的单元格样式超过64000的异常问题解决

    文章目录 POI 操作Excel的单元格样式超过64000的异常问题解决 问题描述 问题原因 问题分析和解决 简单的Excel文件生成Demo 最终的解决方案 POI 操作Excel的单元格样式超过6 ...

  6. CSS设置表格行列,给bootstrap table设置行列单元格样式

    1.根据单元格或者行内其他单元格的内容,给该单元格设置一定的css样式 columns: [{ field: 'index', title: '序号', align:"center" ...

  7. XSSFWorkbook 设置单元格样式_6.6 使用单元格样式

    在工作表中通常需要对单元格中的数据进行格式设置,绝大部分用户都采用手工一步一步去设置相应的格式,如下次需要在其他区域或其他工作表中设置同样的格式,又需要再进行手工设置,这样的格式设置往往十分低效,并且 ...

  8. Python|xlwt|xlrd|调整单元格样式(背景,字体,对齐、虚线边框、列宽行高、添加公式)|xlutils|openpyxl|只读与只写|图表|语言基础50课:学习(8)

    文章目录 系列目录 原项目地址 第24课:用Python读写Excel文件-1 Excel简介 安装 读Excel文件(行列索引从`0`开始) 写Excel文件 调整单元格样式(背景,字体,对齐.虚线 ...

  9. XSSFWorkbook 设置单元格样式_如何设置Excel单元格才能只输入数字!

    要实现Excel单元格仅能输入数字,只需对单元格数据有效性进行设置即可.下面将按步骤具体介绍. 一.选择目标单元格 如Q4,然后点击数据工具栏,选择并点击数据有限性,弹出[数据有效性]窗口. 二.设置 ...

最新文章

  1. 每个网站SEO优化人员都要熟知的三大图片优化技巧
  2. 脑科学助力人工智能,离不开大数据
  3. acwing——每日一题——总结
  4. python读取tiff数据_opencv-python读取tiff影像,并展示
  5. python数组索引和切片_python numpy数组的索引和切片的操作方法
  6. 使用两个队列,改进耗时线程引起的性能问题的思路及代码
  7. Vue前端开发环境搭建
  8. doc88、道客巴巴 文库文档下载
  9. JS实现关闭网页广告弹窗特效
  10. Codeforces 985A. Chess Placing(1ni)(水题)(div.2)
  11. TVS二极管DO-15封装型号,有哪些?
  12. 怎么使excel表只显示一部分分页内容
  13. 计算机专业英语选择题,计算机专业英语单选题
  14. 实际案例说明计算机网络安全,计算机网络安全案例教程
  15. 动态创建表,并批量入库表数据(字段在程序运行之前未知)
  16. 非常不错的地区三级联动,js简单易懂。封装起来了(转)
  17. HotSpot 术语表翻译(JVM)
  18. linux设备驱动读书笔记(转)
  19. 魔兽世界怀旧服最新服务器开发时间,魔兽世界怀旧服:牢记这几点,可以显著提高怀旧服升级速度...
  20. ppt转换pdf转换器免费下载

热门文章

  1. 【工具篇】java导出excel工具类,多种模式自动配置,绝对值得你收藏
  2. 美团酒旅实时数据规则引擎应用实践
  3. 基于真实案例,浅谈EPC项目成本管理控制
  4. 说一说TS码流里面的PCR
  5. coTurn 运行在Windows平台的方法
  6. 前端实现excel导出功能(vue)
  7. 基于php学生社团活动报名系统
  8. 1千6百多甲骨文汉字对应表ACCESS\EXCEL数据库
  9. 外卖小程序源码+后台_外卖cps外卖优惠券 赚钱小程序源码
  10. html中圆角的度,cssli圆角