示例#1
0
        private void CopyRange(ref CellRangeRef sourceRange, SheetData sheetData, ref CellRef target)
        {
            CellRef source = sourceRange.Start;
            CellRef offset = target.CalculateOffset(source);

            var cellsToCopy = FindCellsByRange(sourceRange);

            foreach (var rowGroup in cellsToCopy)
            {
                Row keyRow = rowGroup.Key;

                Row targetRow = new Row()
                {
                    RowIndex = (UInt32)(keyRow.RowIndex + offset.Row)
                };

                MoveCurrentRow((int)targetRow.RowIndex.Value);
                sheetData.InsertBefore(targetRow, currentRow);

                foreach (Cell cellToCopy in rowGroup)
                {
                    Cell targetCell = (Cell)cellToCopy.Clone();

                    targetCell.CellReference = CellRef.OffsetIt(targetCell.CellReference, offset);

                    targetRow.Append(targetCell);
                }
            }
        }