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;
 }
Exemple #2
0
 /// <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;
 }
Exemple #3
0
 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;
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
                }
            }
        }
Exemple #6
0
 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);
             }
         }
     }
 }
Exemple #7
0
 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);
 }
Exemple #8
0
 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));
                 }
             }
         }
     }
 }
Exemple #9
0
        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));
                    }
                }
            }
        }