具有页字段的枢轴 table 必须位于第 3 行上方。当前位置是 A1

A pivot table with page fields must be located above row 3. Current location is A1

遇到 EPPlus 问题。

想要根据第一个数据透视表的数据准备第二个数据透视表(使用 CacheDefinition.SourceRange 完成)并且无法添加过滤器 (PageField)。 当我 运行 时,此代码的最后一行出现错误:"A pivot table with page fields must be located above row 3. Currenct location is A1"... 不知道这里出了什么问题。

代码:

var reportFilterNames = new List<string>() { "ProjectName" };
var valueNames = new List<string>() { "Value1", "Value2", "Value3" };

ExcelWorksheet wsChart = report.Workbook.Worksheets.Add("Chart-Projects");
var dataRange = pivotTableProjects.CacheDefinition.SourceRange;
ExcelPivotTable pivotTable = wsChart.PivotTables.Add(wsChart.Cells[1, 1], dataRange, "PivotTableChart");

pivotTable.MultipleFieldFilters = true;
pivotTable.RowGrandTotals = true;
pivotTable.ColumGrandTotals = true;
pivotTable.Compact = true;
pivotTable.CompactData = true;
pivotTable.GridDropZones = false;
pivotTable.Outline = false;
pivotTable.OutlineData = false;
pivotTable.ShowError = true;
pivotTable.ErrorCaption = "[ERROR]";
pivotTable.ShowHeaders = true;
pivotTable.UseAutoFormatting = true;
pivotTable.ApplyWidthHeightFormats = true;
pivotTable.ShowDrill = true;
//pivotTable.FirstDataCol = 2;
pivotTable.RowHeaderCaption = "Projects";

pivotTable.Indent = 0;
pivotTable.DataOnRows = true;

foreach (string reportFilterName in reportFilterNames)
    pivotTable.PageFields.Add(pivotTable.Fields[reportFilterName]);

有什么建议吗?

对于所有的人,我想通了! 问题是,没有空间来添加过滤器选择...

当我调整那条线时:

    ExcelPivotTable pivotTable = wsChart.PivotTables.Add(wsChart.Cells[1, 1], dataRange, "PivotTableChart");

对此:

    ExcelPivotTable pivotTable = wsChart.PivotTables.Add(wsChart.Cells[3, 1], dataRange, "PivotTableChart");

这将在数据透视表之前提供更多 space,然后错误消失。 因此,如果您想添加多个过滤器,请注意添加更高的起始行。

希望它能帮助将来看到这个的人post。