Exemple #1
0
 void OnEditedCellChanged(object sender, CellChangedEventArgs e)
 {
     if ((_excel != null) && string.Equals(e.PropertyName, "Value"))
     {
         CellRange range  = FixRange(Worksheet, ClearRange);
         int       row    = e.Row - range.Row;
         int       column = e.Column - range.Column;
         ulong     num3   = CopyMoveHelper.ConvertToKey(row, column);
         if (_cachedValues.ContainsKey(num3))
         {
             CellValueEntry entry = _cachedValues[num3];
             if (entry.Value is string)
             {
                 if (!string.IsNullOrEmpty((string)(entry.Value as string)))
                 {
                     _excel.RaiseValueChanged(e.Row, e.Column);
                 }
             }
             else if (entry.Value != null)
             {
                 _excel.RaiseValueChanged(e.Row, e.Column);
             }
         }
     }
 }
Exemple #2
0
 public bool Undo(object parameter)
 {
     if (Worksheet != null)
     {
         bool flag = false;
         if ((_cachedTables != null) && (_cachedTables.Count > 0))
         {
             foreach (SheetTable table in _cachedTables)
             {
                 CellRange range       = table.Range;
                 int       row         = range.Row;
                 int       column      = range.Column;
                 int       rowCount    = range.RowCount;
                 int       columnCount = range.ColumnCount;
                 if (!table.ShowHeader)
                 {
                     row--;
                     rowCount++;
                 }
                 if (table.ShowFooter)
                 {
                     rowCount--;
                 }
                 SheetTable table2 = Worksheet.AddTable(table.Name, row, column, rowCount, columnCount, table.Style);
                 table2.BandedColumns        = table.BandedColumns;
                 table2.BandedRows           = table.BandedRows;
                 table2.HighlightFirstColumn = table.HighlightFirstColumn;
                 table2.HighlightLastColumn  = table.HighlightLastColumn;
                 table2.ShowFooter           = table.ShowFooter;
                 table2.ShowHeader           = table.ShowHeader;
             }
         }
         CellRange range2 = FixRange(Worksheet, ClearRange);
         if (((_cachedValues != null) && (range2.ColumnCount > 0)) && (range2.RowCount > 0))
         {
             try
             {
                 _excel = parameter as Excel;
                 Worksheet.CellChanged += new EventHandler <CellChangedEventArgs>(OnEditedCellChanged);
                 int num5 = range2.RowCount;
                 int num6 = range2.ColumnCount;
                 for (int i = 0; i < num5; i++)
                 {
                     for (int j = 0; j < num6; j++)
                     {
                         int   num9  = range2.Row + i;
                         int   num10 = range2.Column + j;
                         ulong num11 = CopyMoveHelper.ConvertToKey(i, j);
                         if (_cachedValues.ContainsKey(num11))
                         {
                             CellValueEntry entry = _cachedValues[num11];
                             if (entry.IsFormula)
                             {
                                 Worksheet.SetFormula(num9, num10, (string)(entry.Value as string));
                             }
                             else
                             {
                                 Worksheet.SetFormula(num9, num10, null);
                                 Worksheet.SetValue(num9, num10, entry.Value);
                             }
                         }
                         else
                         {
                             Worksheet.SetFormula(num9, num10, null);
                             Worksheet.SetValue(num9, num10, null);
                         }
                     }
                 }
                 foreach (KeyValuePair <CellRange, string> pair in _arrayFormulas)
                 {
                     Worksheet.SetArrayFormula(pair.Key.Row, pair.Key.Column, pair.Key.RowCount, pair.Key.ColumnCount, pair.Value);
                 }
                 flag = true;
             }
             finally
             {
                 Worksheet.CellChanged -= new EventHandler <CellChangedEventArgs>(OnEditedCellChanged);
                 _excel = null;
             }
         }
         if (((_cachedFilteredColumns != null) && (_cachedFilteredColumns.Count > 0)) && (Worksheet.RowFilter != null))
         {
             foreach (int num12 in _cachedFilteredColumns)
             {
                 Worksheet.RowFilter.Filter(num12);
             }
         }
         if (flag)
         {
             RefreshUI(parameter);
             return(true);
         }
     }
     return(false);
 }