private static void MergeExcelTableCells(this Excel.Worksheet workSheet, int startRow, int endRow, int startColumn, List <ExcelTableColumnHeader> columnHeaderList) { for (int i = startRow; i <= endRow; i++) { int rangeStartColumn = startColumn; int rangeEndColumn = startColumn; for (int j = 0; j < columnHeaderList.Count; j++) { ExcelTableColumnHeader columnHeader = columnHeaderList[j]; rangeEndColumn += columnHeader.UseExcelColumnCount - 1; if (columnHeader.UseExcelColumnCount > 1) { Excel.Range columnRange = workSheet.GetRange(i, rangeStartColumn, i, rangeEndColumn); workSheet.MergeCells(columnRange); } rangeEndColumn += 1; rangeStartColumn = rangeEndColumn; } } }