We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Protect certain cells in C#, VB.NET

Platform: WinForms |
Control: XlsIO |
Published Date: April 30, 2011 |
Last Revised Date: June 13, 2019

Syncfusion Excel (XlsIO) library is a .NET Excel library used to create, read, and edit Excel documents. Using this library, you can protect certain cells in C# and VB.NET.

All cells in an Excel spreadsheet have a "Locked" property which determines if the cell will be editable when the worksheet is protected. All the cells are set to locked by default, so when a worksheet is protected all the cells in the worksheet get protected by default. However, there is often a need to protect certain cells only in a worksheet, in this scenario, we would need to protect a worksheet and set the IsLocked property to false for the cells that you want the end user to edit even when the worksheet is protected.

Steps to protect certain cells programmatically:

Step 1: Create a new C# console application project.

Create Console application in Visual Studio

Create a new C# console application

Step 2: Install Syncfusion.XlsIO.WinForms NuGet package as a reference to your .NET Framework applications from the NuGet.org.

Add XlsIO reference to the project

Install NuGet package

Step 3: Include the following namespace in the Program.cs file.

C#

using Syncfusion.XlsIO;

 

VB.NET

Imports Syncfusion.XlsIO

 

Step 4: Use the following code snippet to create Excel file with simple text.

C#

//Create an instance of ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  //Set the default application version as Excel 2016
  excelEngine.Excel.DefaultVersion = ExcelVersion.Excel2016;
 
  //Create a workbook with a worksheet
  IWorkbook workbook = excelEngine.Excel.Workbooks.Create(1);
 
  //Access first worksheet from the workbook instance
  IWorksheet worksheet = workbook.Worksheets[0];
 
  //Sample data
  worksheet.Range["A1:K20"].Text= "Locked";
 
  //A1:A10 will not be protected
  worksheet.Range["A1:A10"].CellStyle.Locked = false;
 
  worksheet.Range["A1:A10"].Text = "UnLocked";
 
  worksheet.Protect("syncfusion");
  
  //Save the workbook to disk in xlsx format
  workbook.SaveAs("Output.xlsx");
}

 

VB.NET

'Create an instance of ExcelEngine
Using excelEngine As ExcelEngine = New ExcelEngine
 
  'Set the default application version as Excel 2016
  excelEngine.Excel.DefaultVersion = ExcelVersion.Excel2016
 
  'Create a workbook with a worksheet
  Dim workbook As IWorkbook = excelEngine.Excel.Workbooks.Create(1)
 
  'Access first worksheet from the workbook instance
  Dim worksheet As IWorksheet = workbook.Worksheets(0)
 
  'Sample data
  worksheet.Range["A1:K20"].Text= "Locked"
 
  'A1:A10 will not be protected. 
  worksheet.Range["A1:A10"].CellStyle.Locked = false
 
  worksheet.Range["A1:A10"].Text = "UnLocked"
 
  worksheet.Protect("syncfusion")
 
  'Save the workbook to disk in xlsx format
  workbook.SaveAs("Output.xlsx")
 
End Using

 

A complete working example of how to add image to Excel header in C#/VB.NET can be downloaded from Protect-Certains-Cells.zip.

By executing the program, you will get the Excel file. You can edit the “Unlocked” text cells but if you are trying to edit the “Locked” text cells, the popup will throw in Excel as below.

Popup thrown in XlsIO output when trying to edit protected cell

Output Excel document

Take a moment to peruse the documentation, where you can find basic worksheet data manipulation options along with features like Conditional Formatting, worksheet calculations through Formulas, adding Charts in worksheet or workbook, organizing and analyzing data through Tables and Pivot Tables, appending multiple records to worksheet using Template Markers, and most importantly PDF and Image conversions with code examples.

Refer here to explore the rich set of Syncfusion Excel (XlsIO) library features.

Note:

Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer the link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon