internal void CreateDateCustomFilter(ePivotTableDateValueFilterType type) { _filterColumnNode.InnerXml = "<customFilters/>"; var cf = new ExcelCustomFilterColumn(NameSpaceManager, _filterColumnNode); eFilterOperator t; var v = ConvertUtil.GetValueForXml(Value1, _date1904); switch (type) { case ePivotTableDateValueFilterType.DateNotEqual: t = eFilterOperator.NotEqual; break; case ePivotTableDateValueFilterType.DateNewerThan: case ePivotTableDateValueFilterType.DateBetween: t = eFilterOperator.GreaterThan; break; case ePivotTableDateValueFilterType.DateNewerThanOrEqual: t = eFilterOperator.GreaterThanOrEqual; break; case ePivotTableDateValueFilterType.DateOlderThan: case ePivotTableDateValueFilterType.DateNotBetween: t = eFilterOperator.LessThan; break; case ePivotTableDateValueFilterType.DateOlderThanOrEqual: t = eFilterOperator.LessThanOrEqual; break; default: t = eFilterOperator.Equal; break; } var item1 = new ExcelFilterCustomItem(v, t); cf.Filters.Add(item1); if (type == ePivotTableDateValueFilterType.DateBetween) { cf.And = true; cf.Filters.Add(new ExcelFilterCustomItem(ConvertUtil.GetValueForXml(Value2, _date1904), eFilterOperator.LessThanOrEqual)); } else if (type == ePivotTableDateValueFilterType.DateNotBetween) { cf.And = false; cf.Filters.Add(new ExcelFilterCustomItem(ConvertUtil.GetValueForXml(Value2, _date1904), eFilterOperator.GreaterThan)); } _filter = cf; }
public ExcelPivotTableFilter AddDateValueFilter(ePivotTableDateValueFilterType type, DateTime value1, DateTime?value2 = null) { if (value2.HasValue == false && (type == ePivotTableDateValueFilterType.DateBetween || type == ePivotTableDateValueFilterType.DateNotBetween)) { throw new ArgumentNullException("value2", "Between filters require two values"); } ExcelPivotTableFilter filter = CreateFilter(); filter.Type = (ePivotTableFilterType)type; filter.Value1 = value1; filter.Value2 = value2; filter.CreateDateCustomFilter(type); filter.Filter.Save(); _filters.Add(filter); return(filter); }