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. Android事件分发传递

    一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev); 接收到触摸事件时,是否分发事件到下面的View 返回true:分发触摸事件 返回f ...

  2. pythonchallenge 解谜 Level 7

    #-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 7 from PIL import Image x_begin, x_end = 0, 609 y_b ...

  3. 《微软互联网信息服务(IIS) 最佳实践》已上市,欢迎选购!

    本书内容涵盖了IIS6.0~IIS 10.0 的全部主流IIS 版本,是多年微软技术支持经验的结晶.祝您顺利排除Web 服务器的疑难杂症! 本书由微软亚太区全球技术支持中心IIS 方面的顶尖专家金鑫作 ...

  4. ecshop二次开发 购物车添加备注信息

  5. 学习笔记:Java的一些基础小知识之JVM与GC

      一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太 ...

  6. [实践] Android5.1.1源码 - 在Framework中添加自定义系统服务

    前言 本文的方法要修改Android源码.但只要将系统服务写出来,也可以注入system_server进程将系统服务加载到system_server中. 步骤 1. 添加一个aidl文件,我将aidl ...

  7. 玩转JavaScript OOP[4]——实现继承的12种套路

    概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入 ...

  8. CSS3 Flexbox不迷路指南

    Flexbox早有耳闻,但是决定切实尝试一番,还是因为看了这条围脖: 我觉得用flexbox可以实现,但是发觉无从下手,属性特性都不了解.趁此机会,学习下. 英文原版参考资料在这里:A Complet ...

  9. shell使用攻略

    shell 是什么 ~ $ ls /bin/*sh /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh 是什么 kernel shell 命令 ...

  10. C语言 · 出现次数最多的数

    问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两 ...