十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
Excel在工作和學(xué)習(xí)中應(yīng)用廣泛,是必不可少的數(shù)據(jù)統(tǒng)計(jì)與處理工具。對(duì)于一些重要的Excel文件,只供特殊人員查看、編輯或者防止重要數(shù)據(jù)對(duì)外泄露時(shí),就需要設(shè)置文檔保護(hù),包括設(shè)置訪問(wèn)密碼、設(shè)置文件只讀等操作。本篇文章將介紹如何使用C#來(lái)設(shè)置Excel工作簿和工作表的保護(hù),示例內(nèi)容涉及以下要點(diǎn)
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括義縣網(wǎng)站建設(shè)、義縣網(wǎng)站制作、義縣網(wǎng)頁(yè)制作以及義縣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,義縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到義縣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
注:由于工作中我們會(huì)遇到各種各樣的需求,加密Excel表格時(shí)也可以分不同方法來(lái)實(shí)現(xiàn)加密需求,Spire.XLS可提供18種不同的保護(hù)類型,如下表所示:
【C#】
using Spire.Xls;
namespace ProtectWorkbook_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)工作簿并加載一個(gè)工作簿實(shí)例
Workbook book = new Workbook();
book.LoadFromFile("test.xls");
//為工作簿設(shè)置訪問(wèn)密碼
book.Protect("myworkbook");
//保存并打開文檔
book.SaveToFile("ProtectedWorkbook.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectedWorkbook.xlsx");
}
}
}
運(yùn)行該項(xiàng)目,生成文件(可在該項(xiàng)目文件夾bin>Debug中查看),點(diǎn)擊打開該工作簿,如下圖所示,密碼設(shè)置完成。輸入密碼即可查看該文檔。
【C#】
using Spire.Xls;
namespace UnProtestedWordbook_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)Workbook實(shí)例
Workbook workbook = new Workbook();
//輸入密碼并加載文檔
workbook.OpenPassword = ("123");
workbook.LoadFromFile("test.xlsx", ExcelVersion.Version2013);
//取消保護(hù)
workbook.UnProtect();
//保存并打開文檔
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("Output.xlsx");
}
}
}
運(yùn)行程序后就沒有密碼保護(hù)了。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)工作簿并加載一個(gè)工作簿實(shí)例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//指定需要加密的工作表
Worksheet sheet = book.Worksheets[0];
//為工作表設(shè)置啟用編輯的密碼
sheet.Protect("myworksheet", SheetProtectionType.None);
//保存并打開文件
book.SaveToFile("ProtectedWorksheet.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("ProtectedWorksheet.xlsx");
}
}
}
此時(shí),需要編輯工作表時(shí)需要密碼,正確輸入密碼后即可編輯。
【C#】
using Spire.Xls;
namespace UnlockCell_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)工作簿并加載一個(gè)實(shí)例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//獲取工作簿中第一個(gè)工作表
Worksheet sheet = book.Worksheets[0];
//設(shè)置工作表保護(hù)密碼,并指定不受密碼保護(hù)(即允許用戶編輯)的單元格區(qū)域
sheet.AddAllowEditRange("AAA", sheet.Range["B2:E6"], "");
sheet.Protect("AAA", SheetProtectionType.All);
//保存并打開文件
book.SaveToFile("UnlockCell.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("UnlockCell.xlsx");
}
}
}
效果圖:
此時(shí),在指定區(qū)域的單元格可以任意編輯。對(duì)于指定區(qū)域外的單元格需要編輯時(shí),須輸入密碼。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)工作簿并加載一個(gè)工作簿實(shí)例
Workbook book = new Workbook();
book.LoadFromFile("ProtectedWorksheet.xlsx");
//獲取工作簿中第一個(gè)工作表
Worksheet sheet = book.Worksheets[0];
//設(shè)置撤銷保護(hù)的密碼
sheet.Unprotect("myworksheet");
//保存并打開文件
book.SaveToFile("UnProtectedWorksheet.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("UnProtectedWorksheet.xlsx");
}
}
}
運(yùn)行程序后工作表不再有密碼保護(hù)。
【C#】
using Spire.Xls;
namespace ProtectWorksheet_XLS
{
class Program
{
static void Main(string[] args)
{
//初始化一個(gè)工作簿并加載一個(gè)工作簿實(shí)例
Workbook book = new Workbook();
book.LoadFromFile("test.xlsx");
//獲取工作簿中第一個(gè)工作表
Worksheet sheet = book.Worksheets[0];
//設(shè)置公式隱藏 ,并設(shè)置保護(hù)密碼
sheet.AllocatedRange.IsFormulaHidden = true;
sheet.Protect("123");
//保存并打開文件
book.SaveToFile("HideFormular.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("HideFormular.xlsx");
}
}
}
效果對(duì)比:
Before
After
選中單元格時(shí),將不再顯示單元格公式。
以上全部為本次關(guān)于設(shè)置Excel文檔保護(hù)的內(nèi)容,對(duì)于不同的需求,可以自行選擇保護(hù)方式,感興趣的話也可以嘗試表格中列舉的其他類型的保護(hù)方式。
本文完!
(如需轉(zhuǎn)載,請(qǐng)注明出處)