Excel在工作和学习中应用广泛,是必不可少的数据统计与处理工具。对于一些重要的Excel文件,只供特殊人员查看、编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码、设置文件只读等操作。本篇文章将介绍如何使用C#来设置Excel工作簿和工作表的保护,示例内容涉及以下要点
成都创新互联服务项目包括义县网站建设、义县网站制作、义县网页制作以及义县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,义县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到义县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
注:由于工作中我们会遇到各种各样的需求,加密Excel表格时也可以分不同方法来实现加密需求,Spire.XLS可提供18种不同的保护类型,如下表所示:
【C#】
using Spire.Xls;
namespace ProtectWorkbook_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个工作簿并加载一个工作簿实例
Workbook book = new Workbook();
book.LoadFromFile("test.xls");
//为工作簿设置访问密码
book.Protect("myworkbook");
//保存并打开文档
book.SaveToFile("ProtectedWorkbook.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectedWorkbook.xlsx");
}
}
}
运行该项目,生成文件(可在该项目文件夹bin>Debug中查看),点击打开该工作簿,如下图所示,密码设置完成。输入密码即可查看该文档。
【C#】
using Spire.Xls;
namespace UnProtestedWordbook_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个Workbook实例
Workbook workbook = new Workbook();
//输入密码并加载文档
workbook.OpenPassword = ("123");
workbook.LoadFromFile("test.xlsx", ExcelVersion.Version2013);
//取消保护
workbook.UnProtect();
//保存并打开文档
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("Output.xlsx");
}
}
}
运行程序后就没有密码保护了。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个工作簿并加载一个工作簿实例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//指定需要加密的工作表
Worksheet sheet = book.Worksheets[0];
//为工作表设置启用编辑的密码
sheet.Protect("myworksheet", SheetProtectionType.None);
//保存并打开文件
book.SaveToFile("ProtectedWorksheet.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectedWorksheet.xlsx");
}
}
}
此时,需要编辑工作表时需要密码,正确输入密码后即可编辑。
【C#】
using Spire.Xls;
namespace UnlockCell_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个工作簿并加载一个实例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//获取工作簿中第一个工作表
Worksheet sheet = book.Worksheets[0];
//设置工作表保护密码,并指定不受密码保护(即允许用户编辑)的单元格区域
sheet.AddAllowEditRange("AAA", sheet.Range["B2:E6"], "");
sheet.Protect("AAA", SheetProtectionType.All);
//保存并打开文件
book.SaveToFile("UnlockCell.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("UnlockCell.xlsx");
}
}
}
效果图:
此时,在指定区域的单元格可以任意编辑。对于指定区域外的单元格需要编辑时,须输入密码。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个工作簿并加载一个工作簿实例
Workbook book = new Workbook();
book.LoadFromFile("ProtectedWorksheet.xlsx");
//获取工作簿中第一个工作表
Worksheet sheet = book.Worksheets[0];
//设置撤销保护的密码
sheet.Unprotect("myworksheet");
//保存并打开文件
book.SaveToFile("UnProtectedWorksheet.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("UnProtectedWorksheet.xlsx");
}
}
}
运行程序后工作表不再有密码保护。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一个工作簿并加载一个工作簿实例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//获取工作簿中第一个工作表
Worksheet sheet = book.Worksheets[0];
//设置公式隐藏 ,并设置保护密码
sheet.AllocatedRange.IsFormulaHidden = true;
sheet.Protect("123");
//保存并打开文件
book.SaveToFile("HideFormular.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("HideFormular.xlsx");
}
}
}
效果对比:
Before
After
选中单元格时,将不再显示单元格公式。
以上全部为本次关于设置Excel文档保护的内容,对于不同的需求,可以自行选择保护方式,感兴趣的话也可以尝试表格中列举的其他类型的保护方式。
本文完!
(如需转载,请注明出处)