带页面字段的数据透视表必须位于第3行上方。当前位置为A1
问题描述:
遇到EPPlus问题。带页面字段的数据透视表必须位于第3行上方。当前位置为A1
想要基于第一个pivottable的数据(使用CacheDefinition.SourceRange完成)准备第二个pivottable,并且不能添加过滤器(PageField)。 当我运行这是这段代码的最后一行休息与错误:“一个数据透视表与页面字段必须位于第3行。Currenct位置是A1”... 不知道这里有什么问题。
CODE:
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");
这会给之前更多的空间枢轴表,然后,错误消失了。 所以要注意添加更高的起始行,如果你想添加多个过滤器。
希望它可以帮助某人在将来看到这篇文章。
如果它可以帮助某人调查此问题,则此例外来源为:[EPPlus/EPPlus/Table/PivotTable/ExcelPivotTableFieldCollection.cs](https://github.com/pruiz/EPPlus/blob/0d53d2f885857f6cdf52ef940baae1024e4b301b/ EPPlus/Table/PivotTable/ExcelPivotTableFieldCollection.cs#L207) –
但如预期的那样,“A1”在第3行之上......不是吗?所以... – SiL3NC3
我没有经验EPPlus,但作为我的基本眼睛通知,触发异常的条件是'if(_table.Address._fromRow