public void Execute(object parameter) { if ((((_info != null) && (_info.RowFilter != null)) && ((_excel != null) && (_excel.ActiveSheet != null))) && ((_column >= 0) && (_column < _excel.ActiveSheet.ColumnCount))) { HideRowFilter rowFilter = _info.RowFilter; object[] filterValues = parameter as object[]; _excel.ActiveSheet.Workbook.SuspendEvent(); try { rowFilter.Unfilter(_column); rowFilter.RemoveFilterItems(_column); if (filterValues != null) { for (int i = 0; i < filterValues.Length; i++) { object obj2 = filterValues[i]; if (obj2 is DateTime) { DateCondition filterItem = DateCondition.FromDateTime(DateCompareType.EqualsTo, (DateTime)obj2); rowFilter.AddFilterItem(_column, filterItem); } else if (obj2 is TimeSpan) { TimeSpan span = (TimeSpan)obj2; TimeCondition condition2 = TimeCondition.FromDateTime(DateCompareType.EqualsTo, Dt.Cells.Data.DateTimeExtension.FromOADate(span.TotalDays)); rowFilter.AddFilterItem(_column, condition2); } else { string expected = (string)(obj2 as string); if ((obj2 == BlankFilterItem.Blank) || (expected == null)) { expected = string.Empty; } TextCondition condition3 = TextCondition.FromString(TextCompareType.EqualsTo, expected); rowFilter.AddFilterItem(_column, condition3); } } } } catch { } finally { _excel.ActiveSheet.Workbook.ResumeEvent(); } if (!_excel.RaiseRangeFiltering(_column, filterValues)) { rowFilter.Filter(_column); _excel.RaiseRangeFiltered(_column, filterValues); } _excel.RefreshRange(-1, -1, -1, -1, SheetArea.Cells | SheetArea.ColumnHeader | SheetArea.RowHeader); _excel.RefreshFloatingObjects(); } }