コード例 #1
0
ファイル: FilterExcel.xaml.cs プロジェクト: Daoting/dt
 void AddCondition(HideRowFilter drf)
 {
     if (_cbText.IsChecked == true)
     {
         TextCondition tc = TextCondition.FromString(TextCompareType.Contains, "*e*");
         drf.AddFilterItem(1, tc);
     }
     if (_cbStyle.IsChecked == true)
     {
         ColorCondition sc = ColorCondition.FromColor(ColorCompareType.BackgroundColor, Colors.Cyan);
         drf.AddFilterItem(1, sc);
     }
     if (_cbNum.IsChecked == true)
     {
         NumberCondition nc = NumberCondition.FromDouble(GeneralCompareType.LessThan, 20);
         drf.AddFilterItem(1, nc);
     }
     if (_cbDate.IsChecked == true)
     {
         DateExCondition dc = DateExCondition.FromWeek(DayOfWeek.Thursday);
         drf.AddFilterItem(1, dc);
     }
     if (_cbNull.IsChecked == true)
     {
         FormulaCondition cx = FormulaCondition.FromType(CustomValueType.Empty);
         drf.AddFilterItem(1, cx);
     }
 }
コード例 #2
0
 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();
     }
 }
コード例 #3
0
ファイル: MainPage.xaml.cs プロジェクト: powernick/TestDemo
 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);
 }