How to protect certain cells in C#, VB.NET and WinForms Excel?
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 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.
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.
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.
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.
Conclusion
I hope you enjoyed learning how to protect certain cells in C#, VB.NET and WinForms Excel.
You can refer to our WinForms Excel feature tour page to know about its other groundbreaking feature representations and documentation, and how to quickly get started for configuration specifications. You can also explore our WinForms Excel example to understand how to create and manipulate data.
For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!