void Condition_Checked(object sender, RoutedEventArgs e) { if (_filter != null) { _filter.ClearFilterItems(); AddCondition(_filter); _filter.Filter(1); } }
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(); } }
private void BtnSetFilter_Click(object sender, RoutedEventArgs e) { Worksheet sheet1 = TestActiveSheet; sheet1.RowCount = 10; sheet1.ColumnCount = 11; sheet1.SetArray(0, 0, new object[,] { {"abc",0}, {"abcd",1}, {"abcdxyz",2}, {123,3}, {"multiline \r\n lines",4}, {"abcde gavin sometest",5}, {"abcde",6}, {"",7}, {"jk国xyz",8}, {null,9}, }); sheet1.AddRows(9, 1); HideRowFilter rowfilter = new HideRowFilter(new CellRange(-1, -1, -1, -1)); ConditionBase item1 = NumberCondition.FromDouble(GeneralCompareType.GreaterThan, 10); this.testSpread.ActiveSheet.RowFilter = rowfilter; rowfilter.AddFilterItem(0, item1); rowfilter.Filter(0); }