Encrypt and Protect your workbook - donkma93/EPPlus GitHub Wiki

EPPlus supports both setting protection and reading and writing encrypted packages.

Protection

Protection can be set both on the workbook and the worksheet level.
This example locks the window and the structure and sets a password.

package.workbook.Protection.LockWindows = true;
package.workbook.Protection.LockStructure = true;

//Set a password for the workbookprotection
package.workbook.Protection.SetPassword("EPPlus");

Note that these settings don't encrypt the workbook. To do that you can set the IsEncrypted property:

    //Encrypts the package with the default password. The package will be encrypted but can be opened by Excel without a password.
    //The file can be opened by EPPlus by providing an empty string as password ("")
    package.Encryption.IsEncrypted = true;

Worksheets can also be protected by using the worksheets Protection property.
Here is an example of how you can lock cells in a worksheet:

sheet.Protection.AllowSelectLockedCells = false;
sheet.Protection.SetPassword("EPPlus");

sheet.Cells["A:XFD"].Style.Locked = true;          //Set Locked to true on all cells (this is the default state, so this is not needed on a newly add worksheet).
sheet.Cells["B3,C7,C9,C11"].Style.Locked = false;  //Unlock these cells

Encryption

To Encrypt a workbook simply save the workbook with your password using the Save or SaveAs methods:

using (ExcelPackage package = new ExcelPackage())
{
    var ws = package.Workbook.Worksheets.Add("MyWorksheet");
    ws.Cells["A1"].Value = "Secret Value";

   package.SaveAs(new FileInfo("MyEncryptedFile.xlsx"), "MyP@ssw0rd!");
}

You can also read an encrypted package by suppling the password in the constructor:

using (ExcelPackage package = new ExcelPackage(new FileInfo("MyEncryptedFile.xlsx"), "MyP@ssw0rd!"))
{
    Console.WriteLine(package.Workbook.Worksheets["MyWorksheet"].Cells["A1"]);
}

Encryption and protection of your workbook is shown in Sample 19-.NET Framework or Sample 19-.NET Core