我正在尝试通过需要累加值的ClosedXML在C#中创建Excel数据透视表。我已经正确生成了源表,并且数据透视表正在正确地引用它并生成。
但是,通过文档,我无法弄清楚如何通过以下方式将值(即Σ值)的汇总从出现在“列”中更改为出现在“行”中C#。虽然可以在GUI中轻松实现,但是通过将参数拖动到“行”(Rows)字段中,我想知道如何通过ClosedXML命令执行此操作。
下面是在GUI +我的当前代码中执行操作的屏幕截图,该屏幕截图生成了第一张图片:
...
var ptSheet1 = workbook.Worksheet("Environmental Impacts");
var pt = ptSheet1.PivotTables.Add("PivotTable1", ptSheet1.Cell(1, 1), table);
pt.ReportFilters.Add("UniqueAssetId");
pt.ReportFilters.Add("Year");
pt.ReportFilters.Add("DesignFunctionName");
pt.ColumnLabels.Add("Module");
pt.Values.Add("Global Warming Potential, GWP").SummaryFormula = XLPivotSummary.Sum;
pt.Values.Add("Ozone Depletion Potential, ODP").SummaryFormula = XLPivotSummary.Sum;
pt.Values.Add("Acidification Potential for Soil and Water, AP").SummaryFormula = XLPivotSummary.Sum;
pt.Values.Add("Eutrophication potential, EP").SummaryFormula = XLPivotSummary.Sum;
编辑:通过使用pt.RowLabels.Add("Module");
将“模块”(值A4,A5等)添加到行标签而不是列标签,可以得到预期表的转置,但值的总和仍列在“列”下。这很接近,但是不是真的我想要的,因为模块名称简短而且更自然地适合作为列标题。而且,尽管ClosedXML可以选择转置Range
选择,但在数据透视表上似乎不可用。
编辑2 :几个小时内一直在浏览源代码和文档,并且找不到对此的引用,因此我最终在回购协议上留下了功能请求: https://github.com/ClosedXML/ClosedXML/issues/1193