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

 

保護工作薄的效果圖:

                  

保護工作表的效果圖:

 

全部代碼:

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

感謝您的觀看!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM