internal void InsertAndCopyRange(TXlsCellRange SourceRange, TFlxInsertMode InsertMode, int DestRow, int DestCol, int aRowCount, int aColCount, TSheetInfo SheetInfo) { FNames.ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo); #if (FRAMEWORK30 && !COMPACTFRAMEWORK) FXlsxPivotCache.ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo); #endif }
internal void InsertAndCopyRange(TXlsCellRange SourceRange, TFlxInsertMode InsertMode, int DestRow, int DestCol, int aRowCount, int aColCount, TRangeCopyMode CopyMode, TSheetInfo SheetInfo) { int aCount = Count; for (int i = 0; i < aCount; i++) { this[i].ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo); } if (CopyMode == TRangeCopyMode.None) { return; } int RTop = SourceRange.Top; int RLeft = SourceRange.Left; if (DestRow <= SourceRange.Top) { RTop += aRowCount * SourceRange.RowCount; } if (DestCol <= SourceRange.Left) { RLeft += aColCount * SourceRange.ColCount; } int RRight = RLeft + SourceRange.ColCount - 1; int RBottom = RTop + SourceRange.RowCount - 1; //Copy the cells. if (aRowCount > 0 || aColCount > 0) { for (int i = 0; i < aCount; i++) { THLinkRecord r = this[i]; if (r.FirstCol >= RLeft && r.LastCol <= RRight && r.FirstRow >= RTop && r.LastRow <= RBottom) { for (int rc = 0; rc < aRowCount; rc++) { Add(((THLinkRecord)TBaseRecord.Clone(r, SheetInfo)).Offset(DestRow - RTop + rc * SourceRange.RowCount, DestCol - RLeft)); } for (int cc = 0; cc < aColCount; cc++) { Add(((THLinkRecord)TBaseRecord.Clone(r, SheetInfo)).Offset(DestRow - RTop, DestCol - RLeft + cc * SourceRange.ColCount)); } } } } }