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); } } } }
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); }