Пример #1
0
        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);
            }
        }
Пример #4
0
        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;
        }