internal void Add(MergedCellRange mergedRange) { if (mergedRange.IsAnyCellMerged) { throw new ArgumentException("New merged range can't overlap with existing merged range."); } this.AddInternal(mergedRange); CellStyle style1 = new CellStyle(); MergedCellRanges.ResolveBorder(style1, mergedRange, IndividualBorder.Top, 0, 0, 0, 1); MergedCellRanges.ResolveBorder(style1, mergedRange, IndividualBorder.Left, 0, 0, 1, 0); MergedCellRanges.ResolveBorder(style1, mergedRange, IndividualBorder.Bottom, mergedRange.Height - 1, 0, 0, 1); MergedCellRanges.ResolveBorder(style1, mergedRange, IndividualBorder.Right, 0, mergedRange.Width - 1, 1, 0); bool flag1 = false; CellStyle style2 = null; foreach (ExcelCell cell1 in mergedRange) { if (!flag1) { if (!cell1.IsStyleDefault) { style2 = cell1.Style; } flag1 = true; } cell1.AddToMergedRange(mergedRange); } if ((mergedRange.Value == null) && (style2 != null)) { mergedRange.Style = style2; } mergedRange.Style.Borders = style1.Borders; }
internal MergedCellRanges(ExcelWorksheet parent, MergedCellRanges sourceRanges) { this.items = new Hashtable(); this.parent = parent; foreach (MergedCellRange range1 in sourceRanges.Values) { this.Add(new MergedCellRange(this.parent, range1)); } }
private void FixMergedRegionsIndexes(int rowIndex, int offset) { MergedCellRanges ranges1 = base.Parent.MergedRanges; MergedCellRanges ranges2 = new MergedCellRanges(base.Parent); foreach (MergedCellRange range1 in ranges1.Values) { range1.FixRowIndexes(rowIndex, offset); if ((range1.Height >= 1) && ((range1.Height != 1) || (range1.Width != 1))) { ranges2.AddInternal(range1); } } base.Parent.MergedRanges = ranges2; }