[]
GcExcel provides the ability to freeze panes in a worksheet. This feature enables users to keep some specific rows or columns visible while scrolling through the rest of the sheet. This functionality is particularly useful when there is a large amount of data that spans across a number of rows or columns.
Additionally, it allows to set the custom color of lines of frozen panes. However, these colors are only visible while interacting with SpreadJS by doing JSON I/O and are not visible in Excel or PDF.
You can freeze panes in a worksheet using the FreezePanes() method of the IWorksheet interface. This method will freeze the split panes according to the incoming row index and column index parameters.
In order to represent the row of freeze position and the column of freeze position, you can use the FreezeRow and FreezeColumn properties respectively.
Refer to the following example code to see how you can freeze panes in a worksheet.
// Adding worksheets to the workbook
IWorksheet worksheet1 = workbook.Worksheets[0];
IWorksheet worksheet2 = workbook.Worksheets.Add();
IWorksheet worksheet3 = workbook.Worksheets.Add();
IWorksheet worksheet4 = workbook.Worksheets.Add();
//Freeze Panes
worksheet1.FreezePanes(2, 3);
worksheet2.FreezePanes(0, 2);
worksheet3.FreezePanes(3, 0);
worksheet4.FreezePanes(3, 5);
You can also set custom color of lines of frozen panes using the FrozenLineColor property of IWorksheet interface.
Refer to the following example code to set blue color for lines of frozen panes in a worksheet.
//Use sheet index to get worksheet
IWorksheet worksheet = workbook.Worksheets[0];
//Freeze panes
worksheet.FreezePanes(5, 5);
//Set frozen line color as blue
worksheet.FrozenLineColor = Color.Blue;
//Export workbook to json string and save to ssjson
System.IO.File.WriteAllText("frozenlinecolor.ssjson", workbook.ToJson());
You can unfreeze the split panes using the UnfreezePanes() method of the IWorksheet interface.
Refer to the following example code to unfreeze panes in a worksheet.
//UnFreeze Panes
worksheet4.UnfreezePanes();