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文档的更多相关文章

  1. Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  2. C# 设置Excel打印选项及打印excel文档

    C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作 ...

  3. 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理

    http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...

  4. QTP操作excel文档

    对于QTP操作excel的大前提是,保证组建服务里的DCOM配置里存在 microsoft excel application ,具体的查看方式是,在运行框中输入dcomcnfg,然后会打开组件服务的 ...

  5. 如何才能恢复Excel文档的打开密码

    对于一些密码的破解,最常用的方法就是“暴力破解”,也是获取密码的最后一种方法,Advanced Office Password Recovery的暴力破解能够破解复杂的Office文档密码.wps也有 ...

  6. 如何破解Excel文档的编辑密码

    对于Excel文档我们不仅可以设置打开密码,还可以设置几天几种密码,比如编辑密码.编辑密码又称写保护密码,是一种可以限制编辑权限的密码.如果我们在日常工作中发现自己忘记了excel编辑密码的话,那就需 ...

  7. 4位组合型Excel文档密码怎么破解

    现代社会我们会遇到各种密码,很多的密码我们一段时间不用就不知不觉的忘记了.很多的excel用户就遇到过这种情况,这个时候我们就需要一款Excel密码破解工具.Advanced Office Passw ...

  8. PHP读取excel文档

    PHP读取excel文档 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel.   PHPExcelReader比较轻量级, ...

  9. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

随机推荐

  1. 使用Python中PIL图形库进行截屏

    目的:通过使用Python的一个图形库PIL(Python Image Library)对屏幕进行截图 步骤: 1.下载PIL(路径)并安装 2.新建文件“截屏.py”,右键Edit with IDL ...

  2. xml中DTD解析

    DTD的作用是"文档类型的定义" DTD申明始终以<!DOCTYPE开头(开头后空一格). 本标签一共有三种写法 一.内部DTD: <!DOCTYPE 根元素 [ 文档 ...

  3. C# Just want 入门

    1. 终于明白为什么以前的程序在结尾部分会经常出现 input any key to exit! using System; namespace ConsoleApplication1 { class ...

  4. PHP基础知识之流程控制的替代语法

    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...

  5. Ring0打开其他设备对象三种方式整理

    1.通过ZwCreateFile打开其他设备的Handle,此函数只能得到句柄.ZwCreateFile与NtCreateFile区别在于NtCreateFile更加底层,ZwCreateFile是基 ...

  6. Unity学习疑问记录之协程

    http://blog.csdn.net/huang9012/article/details/38492937 总结:1.协程相当于多线程但不是,(尽管它们看上去是这样的),它们运行在同一线程中,跟普 ...

  7. MySQL 注册码

    最近开发是用MySQL数据库,之前安装后,每次打开Navicat Premium 都提示 “试用一个月”,“ 注册”,然后为了方便,就都选择了 试用的, 一个月后,就必须的输入注册码,(还有一个是 什 ...

  8. AFNetWorking

    目录: 1.为什么要用AFNetworking 2.AFNetworking的用法 一.为什么要用AFNetworking 在ios开发中,一般情况下,简单的向某个web站点简单的页面提交请求并获取服 ...

  9. 如何使用Microsoft技术栈

    Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...

  10. HTML5- Canvas入门(一)

    周老虎落网的时候,网易跟腾讯都推出了牛逼轰轰的HTML5页面来展示其关系网(网易http://news.163.com/special/data_zyk/  ,腾讯http://news.qq.com ...