天天看點

C# 保護Excel文檔

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");
      

保護工作薄的效果圖:

C# 保護Excel文檔

保護工作表的效果圖:

C# 保護Excel文檔

全部代碼:

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

感謝您的觀看!