常用的对 Excel 格式文件保护的方法有保护整个工作薄或保护指定的工作表,以及标记最终状态,设置用户可以编辑区域等。本文将介绍使用 Spire.XLS for .NET 实现不同的保护类和移除密码保护。
保护工作薄
我们常用方法 workbook.Protect() 来使用密码保护工作薄,读者需要输入密码才能打开工作薄。同时,也可以保护工作薄结构,防止对工作薄进行不需要的更改,例如添加工作表或删除工作表。
- C#
- VB.NET
//初始化一个Workbook实例并加载文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Test.xlsx");
////使用密码保护工作薄
//workbook.Protect("123");
//密码保护工作薄,并保护工作薄结构
workbook.Protect("123",true,true);
workbook.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2013);
'初始化一个Workbook实例并加载文档
Dim workbook As New Workbook()
workbook.LoadFromFile("Test.xlsx")
'使用密码保护工作薄
'workbook.Protect("123");
'密码保护工作薄,并保护工作薄结构
workbook.Protect("123", True, True)
workbook.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2013)
保护工作表
我们可以使用 Spire.XLS 只对某个特定的工作表进行保护,读者可以打开并查看工作表,但是不能对这个工作表内容进行编辑,操作。下面表格详细描述了 Spire.XLS 提供的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. |
- C#
- VB.NET
//加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Test.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//保护第一个工作表并设置保护类型
sheet.Protect("123", SheetProtectionType.None);
workbook.SaveToFile("ProtectSheet1.xlsx", ExcelVersion.Version2013);
'加载Excel文档
Dim workbook As New Workbook()
workbook.LoadFromFile("Test.xlsx")
'获取第一个工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
'保护第一个工作表并设置保护类型
sheet.Protect("123", SheetProtectionType.None)
workbook.SaveToFile("ProtectSheet1.xlsx", ExcelVersion.Version2013)
取消密码保护工作薄
- C#
- VB.NET
//初始化一个Workbook实例
Workbook workbook = new Workbook();
//输入密码并加载文档
workbook.OpenPassword = ("123");
workbook.LoadFromFile("Sample.xlsx", ExcelVersion.Version2013);
//取消保护
workbook.UnProtect();
//保存文档
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);
'初始化一个Workbook实例
Dim workbook As New Workbook()
'输入密码并加载文档
workbook.OpenPassword = ("123")
workbook.LoadFromFile("Sample.xlsx", ExcelVersion.Version2013)
'取消保护
workbook.UnProtect()
'保存文档
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013)
取消密码保护工作表
- C#
- VB.NET
//加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//输入密码取消保护工作表
sheet.Unprotect("123");
//保存文档
workbook.SaveToFile("Result.xlsx", ExcelVersion.Version2013);
'加载Excel文档
Dim workbook As New Workbook()
workbook.LoadFromFile("Sample.xlsx")
'获取第一个工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
'输入密码取消保护工作表
sheet.Unprotect("123")
'保存文档
workbook.SaveToFile("Result.xlsx", ExcelVersion.Version2013)