通过ClosedXML将汇总从数据透视表中的列移动到行

时间:2019-04-29 08:17:42

标签: c# excel closedxml

我正在尝试通过需要累加值的ClosedXML在C#中创建Excel数据透视表。我已经正确生成了源表,并且数据透视表正在正确地引用它并生成。

但是,通过文档,我无法弄清楚如何通过以下方式将值(即Σ值)的汇总从出现在“列”中更改为出现在“行”中C#。虽然可以在GUI中轻松实现,但是通过将参数拖动到“行”(Rows)字段中,我想知道如何通过ClosedXML命令执行此操作。

下面是在GUI +我的当前代码中执行操作的屏幕截图,该屏幕截图生成了第一张图片:

Σ Values in PivotTable Columns being moved to Rows area

    ...

    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

0 个答案:

没有答案