public void Copy(Worksheet src, int fromRow, int fromColumn, int toRow, int toColumn, int rowCount, int columnCount) { if (object.ReferenceEquals(src, this.Sheet)) { this.Copy(fromRow, fromColumn, toRow, toColumn, rowCount, columnCount); } else { int offsetRow = toRow - fromRow; int offsetColumn = toColumn - fromColumn; for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { Sparkline sparkline = src.GetSparkline(fromRow + i, fromColumn + j); if (sparkline != null) { Sparkline sparkline2 = sparkline.Clone(); sparkline2.Row = toRow + i; sparkline2.Column = toColumn + j; CalcExpression dateAxisReference = sparkline2.DateAxisReference; if (dateAxisReference != null) { if (CanOffset(dateAxisReference, offsetRow, offsetColumn, ((Worksheet)this.Sheet).RowCount, ((Worksheet)this.Sheet).ColumnCount)) { sparkline2.DateAxisReference = dateAxisReference.Offset(offsetRow, offsetColumn, false, true); } else { sparkline2.DateAxisReference = new CalcErrorExpression(CalcErrors.Reference); } } CalcExpression dataReference = sparkline2.DataReference; if (dataReference != null) { if (CanOffset(dataReference, offsetRow, offsetColumn, ((Worksheet)this.Sheet).RowCount, ((Worksheet)this.Sheet).ColumnCount)) { sparkline2.DataReference = dataReference.Offset(offsetRow, offsetColumn, false, true); } else { sparkline2.DataReference = new CalcErrorExpression(CalcErrors.Reference); } } this.Add(sparkline2.Group); this.Sheet.SetSparkline(toRow + i, toColumn + j, sparkline2); } else { this.Sheet.SetSparkline(toRow + i, toColumn + j, null); } } } } }
public void Move(Worksheet src, int fromRow, int fromColumn, int toRow, int toColumn, int rowCount, int columnCount) { if (object.ReferenceEquals(src, this.Sheet)) { this.Move(fromRow, fromColumn, toRow, toColumn, rowCount, columnCount); } else { this.MoveDataRange(src, fromRow, fromColumn, toRow, toColumn, rowCount, columnCount); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { Sparkline item = src.GetSparkline(fromRow + i, fromColumn + j); if (item != null) { item.Row = toRow + i; item.Column = toColumn + j; SparklineGroup group = item.Group; SparklineGroup group2 = group.Clone(); group.Remove(item); if (group.Count <= 0) { src.SheetSparklineGroupManager.Remove(group); } group2.Add(item); this.Add(group2); this.Sheet.SetSparkline(toRow + i, toColumn + j, item); } else { this.Sheet.SetSparkline(toRow + i, toColumn + j, null); } ((ISparklineSheet)src).SetSparkline(fromRow + i, fromColumn + j, null); } } } }