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工作表,在實際應用中可以根據不同的需求來選擇保護對象。
感謝您的觀看!