How can I help you?
How to apply border styles for merged cells?
16 Dec 20255 minutes to read
As per the Microsoft Excel UI Behavior, while applying the styles to the single cell in the merged region, then it will apply only to that single cell. So please use the MergeArea property to apply the styles to the entire merged region.
The following examples show how to apply border styles for merged cells in C# (cross-platform and Windows-specific) and VB.NET.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("../../../Data/Input.xlsx");
IWorksheet worksheet = workbook.Worksheets[0];
# region Creating a new style
IStyle style = workbook.Styles.Add("NewStyle");
style.Borders[ExcelBordersIndex.EdgeLeft].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeRight].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeTop].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeBottom].LineStyle = ExcelLineStyle.Thick;
style.Borders.Color = ExcelKnownColors.Red;
style.Font.Bold = true;
style.Font.Color = ExcelKnownColors.Green;
style.Font.Size = 24;
#endregion
//Applying style for merged region
worksheet.Range[2, 1].MergeArea.CellStyle = style;
workbook.SaveAs("../../../Output/MergeArea_Style.xlsx");
}using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("../../Data/Input.xlsx");
IWorksheet worksheet = workbook.Worksheets[0];
# region Creating a new style
IStyle style = workbook.Styles.Add("NewStyle");
style.Borders[ExcelBordersIndex.EdgeLeft].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeRight].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeTop].LineStyle = ExcelLineStyle.Thick;
style.Borders[ExcelBordersIndex.EdgeBottom].LineStyle = ExcelLineStyle.Thick;
style.Borders.Color = ExcelKnownColors.Red;
style.Font.Bold = true;
style.Font.Color = ExcelKnownColors.Green;
style.Font.Size = 24;
#endregion
//Applying style for merged region
worksheet.Range[2,1].MergeArea.CellStyle = style;
workbook.SaveAs("../../Output/MergeArea_Style.xlsx");
}Using excelEngine As New ExcelEngine()
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Open("../../Data/Input.xlsx")
Dim worksheet As IWorksheet = workbook.Worksheets(0)
' Creating a new style
Dim style As IStyle = workbook.Styles.Add("NewStyle")
style.Borders(ExcelBordersIndex.EdgeLeft).LineStyle = ExcelLineStyle.Thick
style.Borders(ExcelBordersIndex.EdgeRight).LineStyle = ExcelLineStyle.Thick
style.Borders(ExcelBordersIndex.EdgeTop).LineStyle = ExcelLineStyle.Thick
style.Borders(ExcelBordersIndex.EdgeBottom).LineStyle = ExcelLineStyle.Thick
style.Borders.Color = ExcelKnownColors.Red
style.Font.Bold = True
style.Font.Color = ExcelKnownColors.Green
style.Font.Size = 24
' Applying style for merged region
worksheet.Range(2, 1).MergeArea.CellStyle = style
workbook.SaveAs("../../Output/MergeArea_Style.xlsx")
End UsingA complete working example to apply border styles for merged cells using C# is present on this GitHub page.