internal DragDropBlockCompletedEventArgs(int fromRow, int fromColumn, int toRow, int toColumn, int rowCount, int columnCount, bool copy, bool insert, CopyToOption copyOption) { FromRow = fromRow; FromColumn = fromColumn; ToRow = toRow; ToColumn = toColumn; RowCount = rowCount; ColumnCount = columnCount; Copy = copy; Insert = insert; CopyOption = copyOption; }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Cells.UndoRedo.DragDropUndoAction" /> class. /// </summary> /// <param name="sheet">The worksheet to drag and drop.</param> /// <param name="dragMoveExtent">The drag drop extent information.</param> /// <param name="copy">if set to <c>true</c> copy; otherwise, <c>false</c>.</param> /// <param name="insert">if set to <c>true</c> inserts the drag data in the drop row or column.</param> /// <param name="option">The <see cref="T:GrapeCity.Windows.SpreadSheet.Data.CopyToOption" /> indicates the content type to drag and drop.</param> public DragDropUndoAction(Worksheet sheet, Dt.Cells.UndoRedo.DragDropExtent dragMoveExtent, bool copy, bool insert, CopyToOption option) { if (sheet == null) { throw new ArgumentNullException("sheet"); } if (dragMoveExtent == null) { throw new ArgumentNullException("dragMoveExtent"); } _sheet = sheet; _dragDropExtent = dragMoveExtent; _copy = copy; _insert = insert; _option = option; }
internal DragDropBlockEventArgs(int fromRow, int fromColumn, int toRow, int toColumn, int rowCount, int columnCount, bool copy, bool insert, CopyToOption copyOption, bool cancel) : this(fromRow, fromColumn, toRow, toColumn, rowCount, columnCount, copy, insert, copyOption) { base.Cancel = cancel; }
void ExecuteDragFill(Excel excel) { CellRange startRange = _dragFillExtent.StartRange; CellRange fillRange = _dragFillExtent.FillRange; if (_dragFillExtent.AutoFillType == AutoFillType.FillSeries) { ClearData(fillRange); if ((_dragFillExtent.FillDirection == FillDirection.Down) || (_dragFillExtent.FillDirection == FillDirection.Right)) { _workSheet.FillAuto(_wholeFillRange, _fillSeries); } else { _workSheet.FillLinear(_wholeFillRange, _fillSeries); } } else if (_dragFillExtent.AutoFillType == AutoFillType.CopyCells) { CopyCells(startRange, fillRange, CopyToOption.All); } else if (_dragFillExtent.AutoFillType == AutoFillType.FillFormattingOnly) { CopyCells(startRange, fillRange, CopyToOption.Style); } else if (_dragFillExtent.AutoFillType == AutoFillType.FillWithoutFormatting) { ClearData(fillRange); if ((((startRange.RowCount == 1) && (startRange.ColumnCount == 1)) && ((startRange.Row != -1) || (startRange.Column == -1))) && ((startRange.Column != -1) || (startRange.Row == -1))) { CopyToOption copyOption = CopyToOption.Tag | CopyToOption.Span | CopyToOption.Sparkline | CopyToOption.RangeGroup | CopyToOption.Formula | CopyToOption.Value; CopyCells(startRange, fillRange, copyOption); } else { CellRange range3 = AdjustRange(_wholeFillRange); object[,] objArray = new object[range3.RowCount, range3.ColumnCount]; for (int i = 0; i < range3.RowCount; i++) { for (int k = 0; k < range3.ColumnCount; k++) { objArray[i, k] = CopyMoveHelper.GetStyleObject(_workSheet, range3.Row + i, range3.Column + k, SheetArea.Cells); } } if ((_dragFillExtent.FillDirection == FillDirection.Down) || (_dragFillExtent.FillDirection == FillDirection.Right)) { _workSheet.FillAuto(_wholeFillRange, _fillSeries); } else { _workSheet.FillLinear(_wholeFillRange, _fillSeries); } for (int j = 0; j < range3.RowCount; j++) { for (int m = 0; m < range3.ColumnCount; m++) { CopyMoveHelper.SetStyleObject(_workSheet, range3.Row + j, range3.Column + m, SheetArea.Cells, objArray[j, m]); } } } } excel.SetActiveCell(Math.Max(0, _wholeFillRange.Row), Math.Max(0, _wholeFillRange.Column), true); _workSheet.SetSelection(_wholeFillRange); }
void CopyCells(CellRange fromRange, CellRange toRange, CopyToOption copyOption) { CellRange range = AdjustRange(fromRange); CellRange range2 = AdjustRange(toRange); if (_fillSeries == FillSeries.Column) { int num = range2.RowCount / range.RowCount; for (int i = 0; i < num; i++) { int num5; int row = range.Row; int column = range.Column; if (_dragFillExtent.FillDirection == FillDirection.Down) { num5 = range2.Row + (i * range.RowCount); } else { int num6 = range2.Row + range2.RowCount; num5 = num6 - ((i + 1) * range.RowCount); } int toColumn = range2.Column; int rowCount = range.RowCount; int columnCount = range.ColumnCount; _workSheet.CopyTo(row, column, num5, toColumn, rowCount, columnCount, copyOption); } int num10 = range2.RowCount % range.RowCount; if (num10 != 0) { int num11; int num14; if (_dragFillExtent.FillDirection == FillDirection.Down) { num11 = range.Row; } else { int num12 = range.RowCount - (range2.RowCount - (range.RowCount * num)); num11 = range.Row + num12; } int fromColumn = range.Column; if (_dragFillExtent.FillDirection == FillDirection.Down) { num14 = range2.Row + (range.RowCount * num); } else { int num15 = range2.Row + range2.RowCount; num14 = (num15 - (num * range.RowCount)) - num10; } int num16 = range2.Column; int num17 = num10; int num18 = range.ColumnCount; _workSheet.CopyTo(num11, fromColumn, num14, num16, num17, num18, copyOption); } } else { int num19 = range2.ColumnCount / range.ColumnCount; for (int j = 0; j < num19; j++) { int num24; int fromRow = range.Row; int num22 = range.Column; int toRow = range2.Row; if (_dragFillExtent.FillDirection == FillDirection.Right) { num24 = range2.Column + (j * range.ColumnCount); } else { int num25 = range2.Column + range2.ColumnCount; num24 = num25 - ((j + 1) * range.ColumnCount); } int num26 = range.RowCount; int num27 = range.ColumnCount; _workSheet.CopyTo(fromRow, num22, toRow, num24, num26, num27, copyOption); } int num28 = range2.ColumnCount % range.ColumnCount; if (num28 != 0) { int num30; int num33; int num29 = range.Row; if (_dragFillExtent.FillDirection == FillDirection.Right) { num30 = range.Column; } else { int num31 = range.ColumnCount - (range2.ColumnCount - (range.ColumnCount * num19)); num30 = range.Column + num31; } int num32 = range2.Row; if (_dragFillExtent.FillDirection == FillDirection.Right) { num33 = range2.Column + (range.ColumnCount * num19); } else { int num34 = range2.Column + range2.ColumnCount; num33 = (num34 - (num19 * range.ColumnCount)) - num28; } int num35 = range.RowCount; int num36 = num28; _workSheet.CopyTo(num29, num30, num32, num33, num35, num36, copyOption); } } }
public static void SaveViewportInfo(Worksheet sheet, CopyMoveCellsInfo cellsInfo, int baseRow, int baseColumn, CopyToOption option) { if ((option & CopyToOption.All) > ((CopyToOption)0)) { int rowCount = cellsInfo.RowCount; int columnCount = cellsInfo.ColumnCount; for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { if ((option & CopyToOption.Value) > ((CopyToOption)0)) { cellsInfo.SaveValue(i, j, sheet.GetValue(baseRow + i, baseColumn + j, SheetArea.Cells)); } if (((option & CopyToOption.Value) > ((CopyToOption)0)) || ((option & CopyToOption.Formula) > ((CopyToOption)0))) { cellsInfo.SaveFormula(i, j, sheet.GetFormula(baseRow + i, baseColumn + j)); object[,] arrayFormulas = Excel.GetsArrayFormulas(sheet, baseRow, baseColumn, rowCount, columnCount); cellsInfo.SaveArrayFormula(arrayFormulas); } if ((option & CopyToOption.Sparkline) > ((CopyToOption)0)) { Sparkline sparkline = sheet.GetSparkline(baseRow + i, baseColumn + j); CellRange sparklineDataRange = sheet.Cells[baseRow + i, baseColumn + j].SparklineDataRange; CellRange sparklineDateAxisRange = sheet.Cells[baseRow + i, baseColumn + j].SparklineDateAxisRange; if ((sparkline != null) && (sparklineDataRange != null)) { cellsInfo.SaveSparkline(i, j, new SparklineInfo(sparkline, sparklineDataRange, sparklineDateAxisRange)); } else { cellsInfo.SaveSparkline(i, j, null); } } if ((option & CopyToOption.Style) > ((CopyToOption)0)) { cellsInfo.SaveStyle(i, j, GetStyleObject(sheet, baseRow + i, baseColumn + j, SheetArea.Cells)); } if ((option & CopyToOption.Tag) > ((CopyToOption)0)) { cellsInfo.SaveTag(i, j, sheet.GetTag(baseRow + i, baseColumn + j, SheetArea.Cells)); } } } if ((option & CopyToOption.Span) > ((CopyToOption)0)) { IEnumerator enumerator = sheet.SpanModel.GetEnumerator(baseRow, baseColumn, rowCount, columnCount); while (enumerator.MoveNext()) { cellsInfo.SaveSpan((CellRange)enumerator.Current); } } } }
public static void SaveSheetInfo(Worksheet sheet, CopyMoveSheetInfo sheetInfo, CopyToOption option) { if ((option & CopyToOption.Style) > ((CopyToOption)0)) { sheetInfo.SaveDefaultStyle(sheet.DefaultStyle); sheetInfo.SaveColumnHeaderDefaultStyle(sheet.ColumnHeader.DefaultStyle); sheetInfo.SaveRowHeaderDefaultStyle(sheet.RowHeader.DefaultStyle); } sheetInfo.SaveDefaultColumnWidth(sheet.DefaultColumnWidth); sheetInfo.SaveDefaultRowHeight(sheet.DefaultRowHeight); sheetInfo.SaveColumnHeaderDefaultRowHeight(sheet.ColumnHeader.DefaultRowHeight); sheetInfo.SaveRowHeaderDefaultColumnWidth(sheet.RowHeader.DefaultColumnWidth); }
public static void SaveRowHeaderInfo(Worksheet sheet, CopyMoveCellsInfo headerCellsInfo, CopyMoveRowsInfo rowsInfo, int baseRow, CopyToOption option) { if ((option & CopyToOption.All) > ((CopyToOption)0)) { int rowCount = headerCellsInfo.RowCount; int columnCount = headerCellsInfo.ColumnCount; for (int i = 0; i < rowCount; i++) { for (int k = 0; k < columnCount; k++) { if ((option & CopyToOption.Value) > ((CopyToOption)0)) { headerCellsInfo.SaveValue(i, k, sheet.GetValue(baseRow + i, k, SheetArea.CornerHeader | SheetArea.RowHeader)); } if ((option & CopyToOption.Style) > ((CopyToOption)0)) { headerCellsInfo.SaveStyle(i, k, GetStyleObject(sheet, baseRow + i, k, SheetArea.CornerHeader | SheetArea.RowHeader)); } if ((option & CopyToOption.Tag) > ((CopyToOption)0)) { headerCellsInfo.SaveTag(i, k, sheet.GetTag(baseRow + i, k, SheetArea.CornerHeader | SheetArea.RowHeader)); } } } if ((option & CopyToOption.Span) > ((CopyToOption)0)) { IEnumerator enumerator = sheet.RowHeaderSpanModel.GetEnumerator(baseRow, 0, rowCount, columnCount); while (enumerator.MoveNext()) { headerCellsInfo.SaveSpan((CellRange)enumerator.Current); } } rowCount = rowsInfo.RowCount; for (int j = 0; j < rowCount; j++) { rowsInfo.SaveHeight(j, sheet.GetRowHeight(baseRow + j)); rowsInfo.SaveVisible(j, sheet.GetRowVisible(baseRow + j)); rowsInfo.SaveResizable(j, sheet.GetRowResizable(baseRow + j)); rowsInfo.SaveTag(j, sheet.GetTag(baseRow + j, -1)); } if ((option & CopyToOption.Style) > ((CopyToOption)0)) { for (int m = 0; m < rowCount; m++) { rowsInfo.SaveViewportRowStyle(m, GetStyleObject(sheet, baseRow + m, -1, SheetArea.Cells)); rowsInfo.SaveHeaderRowStyle(m, GetStyleObject(sheet, baseRow + m, -1, SheetArea.CornerHeader | SheetArea.RowHeader)); } } if ((option & CopyToOption.RangeGroup) > ((CopyToOption)0)) { RangeGroup rowRangeGroup = sheet.RowRangeGroup; if ((rowRangeGroup != null) && !rowRangeGroup.IsEmpty()) { for (int n = 0; n < rowCount; n++) { rowsInfo.SaveRangeGroup(n, rowRangeGroup.Data.GetLevel(baseRow + n), rowRangeGroup.Data.GetCollapsed(baseRow + n)); } } } } }
public static void SaveColumnHeaderInfo(Worksheet sheet, CopyMoveCellsInfo headerCellsInfo, CopyMoveColumnsInfo columnsInfo, int baseColumn, CopyToOption option) { int rowCount = headerCellsInfo.RowCount; int columnCount = headerCellsInfo.ColumnCount; for (int i = 0; i < rowCount; i++) { for (int k = 0; k < columnCount; k++) { if ((option & CopyToOption.Value) > ((CopyToOption)0)) { headerCellsInfo.SaveValue(i, k, sheet.GetValue(i, baseColumn + k, SheetArea.ColumnHeader)); } if ((option & CopyToOption.Style) > ((CopyToOption)0)) { headerCellsInfo.SaveStyle(i, k, GetStyleObject(sheet, i, baseColumn + k, SheetArea.ColumnHeader)); } if ((option & CopyToOption.Tag) > ((CopyToOption)0)) { headerCellsInfo.SaveTag(i, k, sheet.GetTag(i, baseColumn + k, SheetArea.ColumnHeader)); } } } if ((option & CopyToOption.Value) > ((CopyToOption)0)) { for (int m = 0; m < columnCount; m++) { if (sheet.IsColumnBound(baseColumn + m)) { columnsInfo.SaveBindingField(m, sheet.GetDataColumnName(baseColumn + m)); } } } if ((option & CopyToOption.Span) > ((CopyToOption)0)) { IEnumerator enumerator = sheet.ColumnHeaderSpanModel.GetEnumerator(0, baseColumn, rowCount, columnCount); while (enumerator.MoveNext()) { headerCellsInfo.SaveSpan((CellRange)enumerator.Current); } } columnCount = columnsInfo.ColumnCount; for (int j = 0; j < columnCount; j++) { columnsInfo.SaveWidth(j, sheet.GetColumnWidth(baseColumn + j)); columnsInfo.SaveVisible(j, sheet.GetColumnVisible(baseColumn + j)); columnsInfo.SaveResizable(j, sheet.GetColumnResizable(baseColumn + j)); columnsInfo.SaveTag(j, sheet.GetTag(-1, baseColumn + j)); } if ((option & CopyToOption.Style) > ((CopyToOption)0)) { for (int n = 0; n < columnCount; n++) { columnsInfo.SaveViewportColumnStyle(n, GetStyleObject(sheet, -1, baseColumn + n, SheetArea.Cells)); columnsInfo.SaveHeaderColumnStyle(n, GetStyleObject(sheet, -1, baseColumn + n, SheetArea.ColumnHeader)); } } if ((option & CopyToOption.RangeGroup) > ((CopyToOption)0)) { RangeGroup columnRangeGroup = sheet.ColumnRangeGroup; if ((columnRangeGroup != null) && !columnRangeGroup.IsEmpty()) { for (int num8 = 0; num8 < columnCount; num8++) { columnsInfo.SaveRangeGroup(num8, columnRangeGroup.Data.GetLevel(baseColumn + num8), columnRangeGroup.Data.GetCollapsed(baseColumn + num8)); } } } }