public static Cell InsertMergeCell(this Worksheet sheet, WorkbookPart book, SheetData sheetData, string startColumnName, uint startRowIndex, string end, string text, log4net.ILog logger = null) { var sw = new Stopwatch(); //if (logger != null) { sw.Start(); } var cell = sheetData.InsertCell(book, startColumnName, startRowIndex, text, logger: logger, sw: sw); //Log(logger, sw); var firstMergeCells = GetMergeCells(sheet, sheetData); //Log(logger, sw); var reference = string.Format("{0}{1}:{2}", startColumnName, startRowIndex, end); //Log(logger, sw); var mergeCell = firstMergeCells.Elements <MergeCell>() .FirstOrDefault(m => m.Reference.Value == reference); //Log(logger, sw); if (mergeCell == null) { firstMergeCells.Append(new MergeCell() { Reference = reference }); } //if (logger != null) //{ // logger.Info(sw.ElapsedMilliseconds); // sw.Stop(); //} return(cell); }