internal ExcelPivotTableCacheField AddFormula(string name, string formula) { ExcelPivotTableCacheField cacheField = CreateField(name, _fields.Count, false); cacheField.Formula = formula; Fields.Add(cacheField); return(cacheField); }
internal ExcelPivotTableCacheField AddDateGroupField(ExcelPivotTableField field, eDateGroupBy groupBy, DateTime startDate, DateTime endDate, int interval) { ExcelPivotTableCacheField cacheField = CreateField(groupBy.ToString(), field.Index, false); cacheField.SetDateGroup(field, groupBy, startDate, endDate, interval); Fields.Add(cacheField); return(cacheField); }
internal void RefreshFields() { var fields = new List <ExcelPivotTableCacheField>(); var r = SourceRange; for (int col = r._fromCol; col <= r._toCol; col++) { var ix = col - r._fromCol; if (_fields != null && col < _fields.Count && _fields[col].Grouping != null) { fields.Add(_fields[ix]); } else { var ws = r.Worksheet; var name = ws.GetValue(r._fromRow, col).ToString(); ExcelPivotTableCacheField field; if (_fields == null || ix >= _fields?.Count) { field = CreateField(name, ix); field.TopNode.InnerXml = "<sharedItems/>"; foreach (var pt in _pivotTables) { pt.Fields.AddField(ix); } } else { field = _fields[ix]; field.SharedItems.Clear(); } field.Name = name; var hs = new HashSet <object>(); for (int row = r._fromRow + 1; row <= r._toRow; row++) { ExcelPivotTableCacheField.AddSharedItemToHashSet(hs, ws.GetValue(row, col)); } field.SharedItems._list = hs.ToList(); fields.Add(field); } } for (int i = fields.Count; i < _fields.Count; i++) { fields.Add(_fields[i]); } _fields = fields; RefreshPivotTableItems(); }
internal void UpdateGroupItems(ExcelPivotTableCacheField cacheField, bool addTypeDefault) { XmlElement itemsNode = CreateNode("d:items") as XmlElement; _items = new ExcelPivotTableFieldItemsCollection(this); itemsNode.RemoveAll(); for (int x = 0; x < cacheField.GroupItems.Count; x++) { _items.AddInternal(new ExcelPivotTableFieldItem() { X = x, Value = cacheField.GroupItems[x] }); } if (addTypeDefault) { _items.AddInternal(new ExcelPivotTableFieldItem() { Type = eItemType.Default }); } }
internal ExcelPivotTableFieldItemsCollection(ExcelPivotTableField field) : base() { _field = field; _cache = field.Cache; }