C# 保护Excel文档
C# 保护Excel文档
说到保护excel文档,我们首先想到的是密码保护的方式,但excel与word有点不一样,一般情况下,每个excel工作薄都或多或少地含有一定数量的工作表,因此保护excel文档又分为了两类,保护工作薄和保护工作表。在Excel 2013中,点击左上角的FILE->Info就可以找到保护工作簿和保护当前工作表这两个选项,通过它们给文件设置密码保护,我们就可以保护文档的隐私或防止别人随意更改文件的内容。当然啦,方法可以有很多种,今天我主要写的是如何使用C#编程的方式来保护Excel文档。
第一部分:保护工作薄
详细步骤:
步骤1:使用命名空间:
新建一个visual C#项目,添加引用并使用如下命名空间:
using Spire.Xls;
步骤2:创建一个新的Workbook对象并加载待保护的excel文档。
Workbook book = new Workbook();
book.LoadFromFile(@"E:\Program Files\货品情况统计表.xlsx");
步骤3:设置密码保护工作薄。
book.Protect("abc-123");
第二部分:保护工作表
在该例中,保护工作表分为密码保护和密码及操作方式保护两类。
密码保护:设置密码保护以后用户不能对该worksheet做任何修改,相当于只读。如果要修改,需要先输入密码取消保护。
密码及操作方式保护:该方式允许用户做部分操作修改。
下表是保护excel工作表的18种方式:
|
None |
Represents none flags. |
|
Object |
Protects shapes. |
|
Scenarios |
Protects scenarios. |
|
FormattingCells |
Allows users to format any cells on a protected worksheet. |
|
FormattingColumns |
Allows users to format any columns on a protected worksheet. |
|
FormattingRows |
Allows users to format any rows on a protected worksheet. |
|
InsertingColumns |
Allows users to insert columns on a protected worksheet. |
|
InsertingRows |
Allows users to insert rows on a protected worksheet. |
|
InsertingHyperlinks |
Allows users to insert hyperlinks on a protected worksheet. |
|
DeletingColumns |
Allows users to delete columns on a protected worksheet. |
|
DeletingRows |
Allows users to delete rows on a protected worksheet. |
|
LockedCells |
Protects locked cells. |
|
Sorting |
Allows users to sort on a protected worksheet. |
|
Filtering |
Allows users to set filters on a protected worksheet. |
|
UsingPivotTable |
Allows users to use pivot table reports on a protected worksheet. |
|
UnlockedCells |
Protects users interface, but not macros. |
|
Contents |
Represents all flags. |
|
All |
Represents default protection. |
步骤4:与保护工作薄类似,获取需要保护的工作表,并给它设置密码及操作保护(这里我选择的是第一个工作表及密码保护的方式)。
Worksheet sheet = book.Worksheets[0];
sheet.Protect("def-345", SheetProtectionType.None);
步骤5:保存并重启文档。
book.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectExcel.xlsx");
保护工作薄的效果图:

保护工作表的效果图:

全部代码:
using Spire.Xls; namespace Protect_Excel_Document
{
class Program
{
static void Main(string[] args)
{
//Load Workbook
Workbook book = new Workbook();
book.LoadFromFile(@"E:\Program Files\货品情况统计表.xlsx"); //Protect Workbook
book.Protect("abc-123"); //Protect Worksheet with Password
Worksheet sheet = book.Worksheets[0];
sheet.Protect("def-345", SheetProtectionType.None); //Save and Launch
book.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectExcel.xlsx");
}
}
}
总结:
从上面的例子中可以看出,用这种方式来保护excel文档其实并不难,这里我使用的是Free Spire.XLS,而且在设置密码保护excel工作薄的同时也设置了密码保护excel工作表,在实际应用中可以根据不同的需求来选择保护对象。
感谢您的观看!
C# 保护Excel文档的更多相关文章
- Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- C# 设置Excel打印选项及打印excel文档
C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作 ...
- 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理
http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...
- QTP操作excel文档
对于QTP操作excel的大前提是,保证组建服务里的DCOM配置里存在 microsoft excel application ,具体的查看方式是,在运行框中输入dcomcnfg,然后会打开组件服务的 ...
- 如何才能恢复Excel文档的打开密码
对于一些密码的破解,最常用的方法就是“暴力破解”,也是获取密码的最后一种方法,Advanced Office Password Recovery的暴力破解能够破解复杂的Office文档密码.wps也有 ...
- 如何破解Excel文档的编辑密码
对于Excel文档我们不仅可以设置打开密码,还可以设置几天几种密码,比如编辑密码.编辑密码又称写保护密码,是一种可以限制编辑权限的密码.如果我们在日常工作中发现自己忘记了excel编辑密码的话,那就需 ...
- 4位组合型Excel文档密码怎么破解
现代社会我们会遇到各种密码,很多的密码我们一段时间不用就不知不觉的忘记了.很多的excel用户就遇到过这种情况,这个时候我们就需要一款Excel密码破解工具.Advanced Office Passw ...
- PHP读取excel文档
PHP读取excel文档 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel. PHPExcelReader比较轻量级, ...
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...
随机推荐
- common.js js中常用方法
//创建CSS样式段 //classid: CSS样式段ID//font: 字体//size: 字体大小//color: 字体颜色//style: 字体风格function FCMakeCSSClas ...
- Erlang 初学者技巧及避免的陷阱
1. 传参或在匿名函数内慎用self() 通常在做消息传递或新建进程的时候我们需要将当前进程的Pid发给目标进程以便接收返回信息,但初学者不留意容易犯以下错误 spawn(fun() -> lo ...
- CentOS7 编译安装 Nodejs (实测 笔记 Centos 7.0 + node 0.10.33)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...
- 八大排序算法Java
目录(?)[-] 概述 插入排序直接插入排序Straight Insertion Sort 插入排序希尔排序Shells Sort 选择排序简单选择排序Simple Selection Sort 选择 ...
- markdown预览-快速入门
最近要写文档,领导指定用markdown. 这个两三年前用过两次的神器工具,都忘的差不多了. 为了熟练一点这个技能,决定好好的重新学一次. 于是乎:看快速入门文档 ...30分钟...看完文档发现要来 ...
- initWithCoder与initWithFrame的区别
1. initWithFrame方法是什么? initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸). 当然,其他UI对象,也有initWithFrame方 ...
- Des与3Des加密解密
/// <summary> /// Des和3Des算法 /// </summary> public class Des { /// <summary> /// D ...
- SQL Server2008清除数据库日志
m缪国瑞 11:10:17 --'这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询USE dochuanGOSELECT f ...
- apk反编译
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
- 认真分析mmap:是什么 为什么 怎么用
mmap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系.实现这样的映射关系后,进程就可以采用指 ...