NPOI设置Excel保护
有时,我们可能需要某些单元格只读,如在做模板时,模板中的数据是不能随意让别人改的。在Excel中,可以通过“审阅->保护工作表”来完成,如下图:
那么,在NPOI中有没有办法通过编码的方式达到这一效果呢?答案是肯定的。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");IRow row1 = sheet1.CreateRow(0);ICell cel1 = row1.CreateCell(0);ICell cel2 = row1.CreateCell(1);ICellStyle unlocked = hssfworkbook.CreateCellStyle();unlocked.IsLocked = false;ICellStyle locked = hssfworkbook.CreateCellStyle();locked.IsLocked = true;//确定当前单元格被设置保护cel1.SetCellValue("没被锁定");cel1.CellStyle = unlocked;cel2.SetCellValue("被锁定");cel2.CellStyle = locked;sheet1.ProtectSheet("password");//设置密码保护 |
正如代码中所看到的,我们通过设置CellStype的IsLocked为True,表示此单元格将被锁定。相当于在Excel中执行了如下操作:
然后通过ProtectSheet设置密码。
执行结果如下:
没被锁定的列可以任意修改。
被锁定的列不能修改。
输入密码可以解除锁定。
以上只是对单个Cell的设置,其实还可以以行或列设置数据的保护,
行保护:row.RowStyle.IsLocked = true;
列保护:sheet.GetColumnStyle(0).IsLocked = true;获得所在的列 然后设置属性
由此我们可以控制以Excel的行,列,以及单元格为基本单位实现密码的保护。
NPOI设置Excel保护的更多相关文章
- NPOI设置Excel单元格字体、边框、对齐、背景色
代码: ICellStyle cellStyle = workbook.CreateCellStyle(); cellStyle.BorderBottom = BorderStyle.Thin; ce ...
- NPOI 设置excel 边框
https://blog.csdn.net/xxs77ch/article/details/50232343
- NPOI设置Excel中的单元格识别为日期
只有月/日/年的格式,才能显示为Date 其他的,都是显示为Custom
- NPOI导出EXCEL 打印设置分页及打印标题
在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置 sheet1.FitToPage = false; 而 ...
- [转]NPOI导出EXCEL 打印设置分页及打印标题
本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- NPOI操作Excel(二)--创建Excel并设置样式
由于XSSF中的XSSFWorkbook和HSSF中的HSSFWorkbook拥有的属性.方法等都是一样的,故下面就已一个为例做为展示,他们都继承与一个接口:IWorkbook(命名空间:using ...
- NPOI之Excel——合并单元格、设置样式、输入公式、设置筛选等
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...
随机推荐
- WordPress搬家教程:换空间与换域名
WordPress搬家教程:换空间与换域名 由于本人博客空间8月份已到期,便新购一个虚拟主机想进行WordPress搬家,于是特意在网上查了些WordPress搬家教程,进行了综合总结,并结合这次实操 ...
- Winform开发框架之单据窗体生成(主从表,流水单号)
源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:h ...
- 特征的转换规则 Transfer Routione
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C语言细节——献给入门者(一)
C语言细节——献给入门者(一) 主题 输入输出需要注意的细节 首先我们要知道大致有scanf(),printf(),getchar(),putchar(),gets(),puts()这几种输入方式. ...
- JDBC连接sql server数据库及其它
JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...
- 20161028__严工笔记本安装Win2003
1.Win2003的PE(不太明白 这里的PE指什么...)不支持 AHCI (会造成 安装的时候 出现 蓝屏) 到 BIOS 里面 把"AHCI"改成"兼容模式(com ...
- idea首次提交项目
http://www.cnblogs.com/exmyth/p/6133289.html
- 使用QTP测试Web对象
加载Web插件先启动QTP,再启动浏览器,否则Web元素识别不了最新版本QTP11支持的浏览器:IE:6.7.8Firefox:3.0.x.3.5.QTP支持直接访问DOM(Document Obje ...
- Django1.9开发博客(10)- 全文搜索
Django本身不提供全文检索的功能,但django-haystack为其提供了全文检索的框架. django-haystack能为Django提供whoosh,solr,Xapian和Elastic ...
- MyBatis/Ibatis中#和$的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...