-
Notifications
You must be signed in to change notification settings - Fork 287
Encrypt and Protect your workbook
EPPlus supports both setting protection and reading and writing encrypted packages.
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 workbook protection
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
To encrypt a workbook simply save the workbook with your password using the Save
or SaveAs
methods:
// Using the SaveAs method
using (ExcelPackage package = new ExcelPackage())
{
var ws = package.Workbook.Worksheets.Add("MyWorksheet");
ws.Cells["A1"].Value = "Secret Value";
package.SaveAs(@"c:\MyEncryptedFile.xlsx", "MyP@ssw0rd!");
}
// Using the Save method
using (ExcelPackage package = new ExcelPackage(@"c:\MyEncryptedFile.xlsx"))
{
var ws = package.Workbook.Worksheets.Add("MyWorksheet");
ws.Cells["A1"].Value = "Secret Value";
package.Save("MyP@ssw0rd!");
}
To read an encrypted package you should supply the password in the constructor:
using (ExcelPackage package = new ExcelPackage(@"c:\MyEncryptedFile.xlsx", "MyP@ssw0rd!"))
{
Console.WriteLine(package.Workbook.Worksheets["MyWorksheet"].Cells["A1"]);
}
Encryption and protection of your workbook is shown in Sample 8.1-C# or Sample 8.1-VB
EPPlus Software AB - https://epplussoftware.com
- What is new in EPPlus 5+
- Breaking Changes in EPPlus 5
- Breaking Changes in EPPlus 6
- Breaking Changes in EPPlus 7
- Breaking Changes in EPPlus 8 (beta)
- Addressing a worksheet
- Dimension/Used range
- Copying ranges/sheets
- Insert/Delete
- Filling ranges
- Sorting ranges
- Taking and skipping columns/rows
- Data validation
- Comments
- Freeze and Split Panes
- Header and Footer
- Autofit columns
- Grouping and Ungrouping Rows and Columns
- Formatting and styling
- Conditional formatting
- Using Themes
- Working with custom named table- or slicer- styles