C# 保护Excel文档
C# 保护Excel文档
说到保护excel文档,我们首先想到的是密码保护的方式,但excel与word有点不一样,一般情况下,每个excel工作薄都或多或少地含有一定数量的工作表,因此保护excel文档又分为了两类,保护工作薄和保护工作表。在Excel 2013中,点击左上角的FILE->Info就可以找到保护工作簿和保护当前工作表这两个选项,通过它们给文件设置密码保护,我们就可以保护文档的隐私或防止别人随意更改文件的内容。当然啦,方法可以有很多种,今天我主要写的是如何使用C#编程的方式来保护Excel文档。
第一部分:保护工作薄
详细步骤:
步骤1:使用命名空间:
新建一个visual C#项目,添加引用并使用如下命名空间:
1 | using Spire.Xls; |
步骤2:创建一个新的Workbook对象并加载待保护的excel文档。
1 2 | Workbook book = new Workbook(); book.LoadFromFile( @"E:\Program Files\货品情况统计表.xlsx" ); |
步骤3:设置密码保护工作薄。
1 | 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:与保护工作薄类似,获取需要保护的工作表,并给它设置密码及操作保护(这里我选择的是第一个工作表及密码保护的方式)。
1 2 | Worksheet sheet = book.Worksheets[0]; sheet.Protect( "def-345" , SheetProtectionType.None); |
步骤5:保存并重启文档。
1 2 | book.SaveToFile( "ProtectExcel.xlsx" , ExcelVersion.Version2010); System.Diagnostics.Process.Start( "ProtectExcel.xlsx" ); |
保护工作薄的效果图:
保护工作表的效果图:
全部代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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工作表,在实际应用中可以根据不同的需求来选择保护对象。
感谢您的观看!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2015-03-03 C# 从Excel中读取条码
2015-03-03 C# 插入条码到Excel指定单元格
2015-03-03 条形码应用之一------------函数库的简介
2015-03-03 将Excel文件转换为Html