internal CustomFilters ToCustomFilters() { CustomFilters cfs = new CustomFilters(); if (this.And != null && this.And.Value) { cfs.And = this.And.Value; } CustomFilter cf; if (this.OneCustomFilter) { cf = new CustomFilter(); if (HasFirstOperator) { cf.Operator = this.FirstOperator; } cf.Val = this.FirstVal; cfs.Append(cf); } else { cf = new CustomFilter(); if (HasFirstOperator) { cf.Operator = this.FirstOperator; } cf.Val = this.FirstVal; cfs.Append(cf); cf = new CustomFilter(); if (HasSecondOperator) { cf.Operator = this.SecondOperator; } cf.Val = this.SecondVal; cfs.Append(cf); } return(cfs); }
internal CustomFilters ToCustomFilters() { var cfs = new CustomFilters(); if ((And != null) && And.Value) { cfs.And = And.Value; } CustomFilter cf; if (OneCustomFilter) { cf = new CustomFilter(); if (HasFirstOperator) { cf.Operator = FirstOperator; } cf.Val = FirstVal; cfs.Append(cf); } else { cf = new CustomFilter(); if (HasFirstOperator) { cf.Operator = FirstOperator; } cf.Val = FirstVal; cfs.Append(cf); cf = new CustomFilter(); if (HasSecondOperator) { cf.Operator = SecondOperator; } cf.Val = SecondVal; cfs.Append(cf); } return(cfs); }
private static void PopulateAutoFilter(XLAutoFilter xlAutoFilter, AutoFilter autoFilter) { var filterRange = xlAutoFilter.Range; autoFilter.Reference = filterRange.RangeAddress.ToString(); foreach (var kp in xlAutoFilter.Filters) { var filterColumn = new FilterColumn {ColumnId = (UInt32)kp.Key - 1}; var xlFilterColumn = xlAutoFilter.Column(kp.Key); var filterType = xlFilterColumn.FilterType; if (filterType == XLFilterType.Custom) { var customFilters = new CustomFilters(); foreach (var filter in kp.Value) { var customFilter = new CustomFilter {Val = filter.Value.ToString()}; if (filter.Operator != XLFilterOperator.Equal) customFilter.Operator = filter.Operator.ToOpenXml(); if (filter.Connector == XLConnector.And) customFilters.And = true; customFilters.Append(customFilter); } filterColumn.Append(customFilters); } else if (filterType == XLFilterType.TopBottom) { var top101 = new Top10 {Val = (double)xlFilterColumn.TopBottomValue}; if (xlFilterColumn.TopBottomType == XLTopBottomType.Percent) top101.Percent = true; if (xlFilterColumn.TopBottomPart == XLTopBottomPart.Bottom) top101.Top = false; filterColumn.Append(top101); } else if (filterType == XLFilterType.Dynamic) { var dynamicFilter = new DynamicFilter {Type = xlFilterColumn.DynamicType.ToOpenXml(), Val = xlFilterColumn.DynamicValue}; filterColumn.Append(dynamicFilter); } else { var filters = new Filters(); foreach (var filter in kp.Value) { filters.Append(new Filter {Val = filter.Value.ToString()}); } filterColumn.Append(filters); } autoFilter.Append(filterColumn); } if (xlAutoFilter.Sorted) { var sortState = new SortState { Reference = filterRange.Range(filterRange.FirstCell().CellBelow(), filterRange.LastCell()).RangeAddress. ToString() }; var sortCondition = new SortCondition { Reference = filterRange.Range(1, xlAutoFilter.SortColumn, filterRange.RowCount(), xlAutoFilter.SortColumn).RangeAddress.ToString() }; if (xlAutoFilter.SortOrder == XLSortOrder.Descending) sortCondition.Descending = true; sortState.Append(sortCondition); autoFilter.Append(sortState); } }
internal CustomFilters ToCustomFilters() { CustomFilters cfs = new CustomFilters(); if (this.And != null && this.And.Value) cfs.And = this.And.Value; CustomFilter cf; if (this.OneCustomFilter) { cf = new CustomFilter(); if (HasFirstOperator) cf.Operator = this.FirstOperator; cf.Val = this.FirstVal; cfs.Append(cf); } else { cf = new CustomFilter(); if (HasFirstOperator) cf.Operator = this.FirstOperator; cf.Val = this.FirstVal; cfs.Append(cf); cf = new CustomFilter(); if (HasSecondOperator) cf.Operator = this.SecondOperator; cf.Val = this.SecondVal; cfs.Append(cf); } return cfs; }