internal void Init(ExcelTableColumn column, string cacheName) { TableColumn = column; var wb = column.Table.WorkSheet.Workbook; CreatePart(wb); SlicerCacheXml.DocumentElement.InnerXml = $"<extLst><x:ext uri=\"{ExtLstUris.TableSlicerCacheUri}\" xmlns:x15=\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"><x15:tableSlicerCache tableId=\"{column.Table.Id}\" column=\"{column.Id}\"/></x:ext></extLst>"; TopNode = SlicerCacheXml.DocumentElement; Name = cacheName; SourceName = column.Name; SlicerCacheXml.Save(Part.GetStream(FileMode.Create, FileAccess.Write)); CreateWorkbookReference(wb, ExtLstUris.WorkbookSlicerTableUri); }
internal ExcelTableSlicer(ExcelDrawings drawings, XmlNode node, ExcelTableColumn column) : base(drawings, node) { TableColumn = column; if (column.Slicer == null) { column.Slicer = this; } var name = drawings.Worksheet.Workbook.GetSlicerName(column.Name); CreateDrawing(name); SlicerName = name; Caption = column.Name; RowHeight = 19; CacheName = "Slicer_" + ExcelAddressUtil.GetValidName(name); var cache = new ExcelTableSlicerCache(NameSpaceManager); cache.Init(column, CacheName); _cache = cache; }