public static IEnumerable <Dimension> Enumerate(XlsxPivotReader w)
            {
                var multiTable = w.MultiTableWorkbook;
                var sheet      = w.GetWorksheetIfExists(SheetNaming.PivotHorizontal);

                if (sheet != null)
                {
                    var r = 0;
                    foreach (var d in sheet.Entities <Dimension>())
                    {
                        d.Rank        = r++;
                        d.Orientation = Dimension.Orientations.Horizontal;
                        yield return(d);
                    }
                }
                sheet = w.GetWorksheetIfExists(SheetNaming.PivotVertical);
                if (sheet != null)
                {
                    var r = 0;
                    foreach (var d in sheet.Entities <Dimension>())
                    {
                        d.Rank        = r++;
                        d.Orientation = Dimension.Orientations.Vertical;
                        yield return(d);
                    }
                }
            }
            public static IEnumerable <string> AllTableSheetNames(XlsxPivotReader book)
            {
                var pivotWorkSheetNames = from n in book.WorksheetNames
                                          let name = n.ToLowerInvariant()
                                                     where
                                                     name.StartsWith(Prefix) &&
                                                     !PivotSheets.Equals(name) &&
                                                     !name.StartsWith(PivotData)
                                                     select n;
                var pivotSheetNames = from sheetName in pivotWorkSheetNames
                                      select book[sheetName].Entities <SheetNaming>();
                var pivotTableNames = from sheetNames in pivotSheetNames
                                      from sheetName in sheetNames
                                      select sheetName.Name;
                var allNames = (from n in pivotTableNames.Union(MetaDataTable.PivotTableSheets(book.MetaDataTables))
                                where !string.IsNullOrEmpty(n)
                                select n).Distinct(System.StringComparer.OrdinalIgnoreCase).ToList();

                if (allNames.Count > 0)
                {
                    return(allNames);
                }
                return(from n in book.WorksheetNames
                       where !n.ToLowerInvariant().StartsWith(SheetNaming.Prefix)
                       select n);
            }
            public static IEnumerable <Dimension> Enumerate(XlsxPivotReader w, string tableName)
            {
                var multiTable = w.MultiTableWorkbook;
                var sheet      = w.GetWorksheetIfExists(SheetNaming.PivotHorizontal);

                if (sheet != null)
                {
                    var r = 0;
                    foreach (var d in sheet.Entities <Dimension>())
                    {
                        if (multiTable)
                        {
                            if (!tableName.Equals(d.Sheet, System.StringComparison.OrdinalIgnoreCase))
                            {
                                continue;
                            }
                        }
                        d.Rank        = r++;
                        d.Orientation = Dimension.Orientations.Horizontal;
                        yield return(d);
                    }
                }
                sheet = w.GetWorksheetIfExists(SheetNaming.PivotVertical);
                if (sheet != null)
                {
                    var r = 0;
                    foreach (var d in sheet.Entities <Dimension>())
                    {
                        if (multiTable)
                        {
                            if (!tableName.Equals(d.Sheet, System.StringComparison.OrdinalIgnoreCase))
                            {
                                continue;
                            }
                        }
                        d.Rank        = r++;
                        d.Orientation = Dimension.Orientations.Vertical;
                        yield return(d);
                    }
                }
            }
 internal PivotTable(XlsxPivotReader pr, string tableName)
 {
     _xlsx      = pr;
     DataSheet  = _xlsx.GetWorksheet(tableName, false);
     _tableName = tableName;
 }
 public static TableSelector GetTableSelector(XlsxPivotReader xlsx)
 {
     return(new TableSelector(xlsx));
 }
 private TableSelector(XlsxPivotReader xlsx)
 {
     _xlsx = xlsx;
 }