C#/VB.NET: Add or Delete Digital Signature in Excel
A digital signature is a type of electronic signature that can be used to verify the authenticity and integrity of digital documents. It can help recipients identify where the digital documents originate from and whether they have been changed by a third party after they were signed. In this article, we will demonstrate how to add or delete digital signatures in Excel in C# and VB.NET using Spire.XLS for .NET.
- Add a Digital Signature to Excel in C# and VB.NET
- Delete All Digital Signatures from Excel in C# and VB.NET
Install Spire.XLS for .NET
To begin with, you need to add the DLL files included in the Spire.XLS for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.XLS
Add a Digital Signature to Excel in C# and VB.NET
You can add a digital signature to protect the integrity of an Excel file. Once the digital signature is added, the file becomes read-only to discourage further editing. If someone makes changes to the file, the digital signature will become invalid immediately.
Spire.XLS for .NET provides the AddDigitalSignature method of Workbook class to add digital signatures to an Excel file. The detailed steps are as follows:
- Initialize an instance of the Workbook class.
- Load an Excel file using Workbook.LoadFromFile() method.
- Initialize an instance of the X509Certificate2 class with the specified certificate (.pfx) file path and the password of the .pfx file.
- Initialize an instance of the DateTime class.
- Add a digital signature to the file using Workbook.AddDigitalSignature(X509Certificate2, string, DateTime) method.
- Save the result file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; using Spire.Xls.Core.MergeSpreadsheet.Interfaces; using System; using System.Security.Cryptography.X509Certificates; namespace AddSignatureInExcel { class Program { static void Main(string[] args) { //Create a Workbook instance Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile("Sample.xlsx"); //Add digital signature to the file X509Certificate2 cert = new X509Certificate2("gary.pfx", "e-iceblue"); DateTime certtime = new DateTime(2020, 7, 1, 7, 10, 36); IDigitalSignatures signature = workbook.AddDigitalSignature(cert, "e-iceblue", certtime); //Save the result file workbook.SaveToFile("AddDigitalSignature.xlsx", FileFormat.Version2013); } } }
Delete All Digital Signatures from Excel in C# and VB.NET
Spire.XLS for .NET provides the RemoveAllDigitalSignatures method of Workbook class for developers to remove digital signatures from an Excel file. The detailed steps are as follows:
- Initialize an instance of the Workbook class.
- Load an Excel file using Workbook.LoadFromFile() method.
- Remove all digital signatures from the file using Workbook.RemoveAllDigitalSignatures() method.
- Save the result file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace DeleteSignatureInExcel { class Program { static void Main(string[] args) { //Create a Workbook instance Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile("AddDigitalSignature.xlsx"); //Remove all the digital signatures in the file workbook.RemoveAllDigitalSignatures(); //Save the result file workbook.SaveToFile("RemoveDigitalSignature.xlsx", FileFormat.Version2013); } } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.
Hide Formulas When Protecting a Worksheet in C#
If your worksheet has some important formulas that you don’t want others to view, you may want to hide these formulas. This article demonstrates how to hide formulas when protecting a worksheet using Spire.XLS and C#.
The XlsRange.IsFormulaHidden property is used to determine if the formula will be hidden when the worksheet is protected. You can hide the formulas in a specific cell range by setting the XlsRange.IsFormulaHidden property to true, but note that the formulas can be hidden only if the worksheet is protected, they won’t be hidden if the workbook is protected while the worksheet is not.
using Spire.Xls; namespace HideFormulas { class Program { static void Main(string[] args) { //Initialize an object of Workbook class Workbook workbook = new Workbook(); //Load the Excel file workbook.LoadFromFile("Input.xlsx"); //Get the first worksheet Worksheet sheet = workbook.Worksheets[0]; //Hide the formulas in the used range sheet.AllocatedRange.IsFormulaHidden = true; //Protect the worksheet with password sheet.Protect("123"); //Save the file workbook.SaveToFile("HideFormulas.xlsx", ExcelVersion.Version2013); } } }
Screenshot:
Remove or Reset Password of Encrypted Workbook in C#, VB.NET
Using Spire.XLS, the password of an encrypted workbook can be removed or modified in case you know the open password. This article presents how to load a password protected Excel workbook, remove the protection or reset the password and then save the changes to the original file.
Step 1: Initialize an instance of Workbook class.
Workbook wb = new Workbook();
Step 2: Specify the open password and then load the encrypted Excel file.
wb.OpenPassword = "oldpassword"; wb.LoadFromFile(@"C:\Users\Administrator\Desktop\Encrypted.xlsx");
Step 3: Remove the password protection with UnProtect() method or reset the password by Protect() method.
//unprotect workbook wb.UnProtect(); //reset password wb.Protect("newpassword");
Step 4: Save the changes to file.
wb.SaveToFile(@"C:\Users\Administrator\Desktop\Encrypted.xlsx, ExcelVersion.Version2010");
Full Code:
using Spire.Xls; namespace RemovePassword { class Program { static void Main(string[] args) { Workbook wb = new Workbook(); wb.OpenPassword = "oldpassword"; wb.LoadFromFile(@"C:\Users\Administrator\Desktop\Encrypted.xlsx"); ////unprotect workbook //wb.UnProtect(); //reset password wb.Protect("newpassword"); wb.SaveToFile(@"C:\Users\Administrator\Desktop\Encrypted.xlsx", ExcelVersion.Version2010); } } }
Imports Spire.Xls Namespace RemovePassword Class Program Private Shared Sub Main(args As String()) Dim wb As New Workbook() wb.OpenPassword = "oldpassword" wb.LoadFromFile("C:\Users\Administrator\Desktop\Encrypted.xlsx") '''/unprotect workbook 'wb.UnProtect(); 'reset password wb.Protect("newpassword") wb.SaveToFile("C:\Users\Administrator\Desktop\Encrypted.xlsx", ExcelVersion.Version2010) End Sub End Class End Namespace
Detect if an Excel Workbook is Password Protected in C#, VB.NET
Spire.XLS provides a class named Workbook that represents an Excel workbook. This class contains a method named IsPasswordProtected(string fileName) which returns a boolean value. If the value is true, means the workbook is encrypted with password, otherwise it's not.
This is an Excel workbook protected with password:
Now refer below code to detect if the Excel workbook is password protected:
using System; using Spire.Xls; namespace Detect_if_workbook_is_password_protected { class Program { static void Main(string[] args) { string fileName = "E:\\Program Files\\Sample.xlsx"; //Detect if the Excel workbook is password protected. bool value = Workbook.IsPasswordProtected(fileName); Console.WriteLine(value); Console.ReadKey(); } } }
Imports Spire.Xls Namespace Detect_if_workbook_is_password_protected Class Program Private Shared Sub Main(args As String()) Dim fileName As String = "E:\Program Files\Sample.xlsx" 'Detect if the Excel workbook is password protected. Dim value As Boolean = Workbook.IsPasswordProtected(fileName) Console.WriteLine(value) Console.ReadKey() End Sub End Class End Namespace
After running the project, we get the Output that shows the workbook is password protected:
C#/VB.NET: Lock Specific Cells in Excel
When creating an Excel worksheet, you may enter some data or formulas that you don't wish other users to modify. Locking the corresponding cells can be essential to maintain the integrity of the data and formulas. In this article, you will learn how to lock specific cells in Excel in C# and VB.NET using Spire.XLS for .NET library.
Install Spire.XLS for .NET
To begin with, you need to add the DLL files included in the Spire.XLS for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.XLS
Lock Specific Cells in Excel in C# and VB.NET
Normally, the locked option is enabled for all cells in a worksheet. Therefore, before locking a cell or range of cells, all cells must be unlocked. Keep in mind that locking cells doesn’t take effect until the worksheet is protected.
The following are the main steps to lock cells in Excel:
- Create an instance of Workbook class.
- Load the Excel file using Workbook.LoadFromFile() method.
- Get the desired worksheet using Workbook.Worksheet[sheetIndex] property.
- Access the used range in the worksheet and then unlock all the cells in the range by setting the CellRange.Style.Locked property as false.
- Access specific cells and then lock them by setting the CellRange.Style.Locked property as true.
- Protect the worksheet using XlsWorksheetBase.Protect() method.
- Save the result file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace LockCells { class Program { static void Main(string[] args) { //Create a Workbook instance Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile("Input.xlsx"); //Get the first worksheet Worksheet sheet = workbook.Worksheets[0]; //Unlock all cells in the used range of the worksheet CellRange usedRange = sheet.Range; usedRange.Style.Locked = false; //Lock specific cells CellRange cells = sheet.Range["A1:C3"]; cells.Style.Locked = true; //Protect the worksheet with password sheet.Protect("123456", SheetProtectionType.All); //Save the result file workbook.SaveToFile("LockCells.xlsx", ExcelVersion.Version2016); } } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.
C#/VB.NET: Protect or Unprotect Excel Documents
When sharing Excel files with other people or sending files out of your organization, you may want to protect sensitive data from being changed, moved, or deleted. The easiest way to prevent accidental or deliberate changes in the contents is to restrict editing on a worksheet or password protect an entire workbook. In this article, you will learn how to protect and unprotect a workbook or a worksheet in C# and VB.NET using Spire.XLS for .NET.
- Password Protect an Entire Workbook
- Protect a Worksheet with a Specific Protection Type
- Allow Users to Edit Ranges in a Protected Worksheet
- Lock Specific Cells in a Worksheet
- Unprotect a Password Protected Worksheet
- Remove or Reset Password of an Encrypted Workbook
Install Spire.XLS for .NET
To begin with, you need to add the DLL files included in the Spire.XLS for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.XLS
Password Protect an Entire Workbook in C# and VB.NET
By encrypting an Excel document with a password, you ensure that only you and authorized individuals can read or edit it. The following are the steps to password protect a workbook using Spire.XLS for .NET.
- Create a Workbook object.
- Load an Excel file using Workbook.LoadFromFile() method.
- Protect the workbook using a password using Workbook.Protect() method.
- Save the workbook to another Excel file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace PasswordProtectWorkbook { class Program { static void Main(string[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx"); //Protect workbook with a password workbook.Protect("psd-123"); //Save the workbook to another Excel file workbook.SaveToFile("Encrypted.xlsx", ExcelVersion.Version2016); } } }
Protect a Worksheet with a Specific Protection Type in C# and VB.NET
If you wish to grant people permission to read your Excel document but restrict the types of modifications they are allowed to make on a worksheet, you can protect the worksheet with a specific protection type. The table below lists a variety of pre-defined protection types under the SheetProtectionType enumeration.
Protection Type | Allow users to |
Content | Modify or insert content. |
DeletingColumns | Delete columns. |
DeletingRows | Delete rows. |
Filtering | Set filters. |
FormattingCells | Format cells. |
FormattingColumns | Format columns. |
FormattingRows | Format rows. |
InsertingColumns | Insert columns. |
InsertingRows | Insert rows. |
InsertingHyperlinks | Insert hyperlinks . |
LockedCells | Select locked cells. |
UnlockedCells | Select unlocked cells. |
Objects | Modify drawing objects. |
Scenarios | Modify saved scenarios. |
Sorting | Sort data. |
UsingPivotTables | Use pivot table and pivot chart. |
All | Do any operations listed above on the protected worksheet. |
None | Do nothing on the protected worksheet. |
The following are the steps to protect a worksheet with a specific protection type using Spire.XLS for .NET.
- Create a Workbook object.
- Load an Excel file using Workbook.LoadFromFile() method.
- Get a specific worksheet through Workbook.Worksheets[index] property.
- Protect the worksheet with a protection type using Worksheet.Protect(string password, SheetProtectionType options) method.
- Save the workbook to another Excel file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace ProtectWorksheetWithSpecificProtectionType { class Program { static void Main(string[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx"); //Get a specific worksheet Worksheet worksheet = workbook.Worksheets[0]; //Protect the worksheet with the permission password and the specific protect type worksheet.Protect("psd-permission", SheetProtectionType.None); //Save the workbook to another Excel file workbook.SaveToFile("ProtectWorksheet.xlsx", ExcelVersion.Version2016); } } }
Allow Users to Edit Ranges in a Protected Worksheet in C# and VB.NET
In certain cases, you may need to allow users to be able to edit selected ranges in a protected worksheet. The following steps demonstrate how to.
- Create a Workbook object.
- Load an Excel file using Workbook.LoadFromFile() method.
- Get a specific worksheet through Workbook.Worksheets[index] property.
- Specify editable cell ranges using Worksheet.AddAllowEditRange() method.
- Protect the worksheet with a protection type using Worksheet.Protect(string password, SheetProtectionType options) method.
- Save the workbook to another Excel file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace AllowEditRanges { class Program { static void Main(string[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Load an Excel file workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx"); //Get the first worksheet Worksheet sheet = workbook.Worksheets[0]; //Add ranges that allow editing sheet.AddAllowEditRange("Range One", sheet.Range["A5:A6"]); sheet.AddAllowEditRange("Range Two", sheet.Range["A8:B11"]); //Protect the worksheet with a password and a protection type sheet.Protect("psd-permission", SheetProtectionType.All); //Save the workbook to another Excel file workbook.SaveToFile("AllowEditRange.xlsx", ExcelVersion.Version2016); } } }
Unprotect a Password Protected Worksheet in C# and VB.NET
To remove the protection of a password-protected worksheet, invoke the Worksheet.Unprotect() method and pass in the original password as a parameter. The detailed steps are as follows.
- Create a Workbook object.
- Load an Excel file using Workbook.LoadFromFile() method.
- Get a specific worksheet through Workbook.Worksheets[index] property.
- Remove the protection using Worksheet.Unprotect(string password) method.
- Save the workbook to another Excel file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace UnprotectWorksheet { class Program { static void Main(string[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Load an Excel file containing protected worksheet workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\ProtectedWorksheet.xlsx"); //Get the first worksheet Worksheet sheet = workbook.Worksheets[0]; //Unprotect the worksheet using the specified password sheet.Unprotect("psd-permission"); //Save the workbook to anther Excel file workbook.SaveToFile("UnprotectWorksheet.xlsx", ExcelVersion.Version2016); } } }
Remove or Reset Password of an Encrypted Workbook in C# and VB.NET
To remove or reset password of an encrypted workbook, you can use the Workbook.Unprotect() method and the Workbook.Protect() method, respectively. The following steps show you how to load an encrypted Excel document and delete or change the password of it.
- Create a Workbook object.
- Specify the open password through Workbook.OpenPassword property.
- Load the encrypted Excel file using Workbook.LoadFromFile() method.
- Remove the encryption using Workbook.Unprotect() method. Or change the password using Workbook.Protect() method.
- Save the workbook to another Excel file using Workbook.SaveToFile() method.
- C#
- VB.NET
using Spire.Xls; namespace RemoveOrResetPassword { class Program { static void Main(string[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Specify the open password workbook.OpenPassword = "psd-123"; //Load an encrypted Excel file workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Encrypted.xlsx"); //Unprotect workbook workbook.UnProtect(); //Reset password //workbook.Protect("newpassword"); //Save the workbook to another Excel file workbook.SaveToFile("Unprotect.xlsx", ExcelVersion.Version2016); } } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.