封闭XML透视报告滤波器多个值



我正在使用一块代码来生成Excel中的枢轴表。

这是代码:

using (XL.XLWorkbook workbook = new XL.XLWorkbook(sourceFile))
        {
            var outSheet = workbook.Worksheets.Add("output table");
            outSheet.Cell(1, 1).InsertTable(dt, "out table", true);
            var datarange = outSheet.RangeUsed();
            var pivotSheet = workbook.Worksheets.Add("PivotTable");
            var pivotTable = pivotSheet.PivotTables.AddNew("Pivot Table", pivotSheet.Cell(3, 1), datarange);
            pivotTable.ReportFilters.Add("Filter1");
            pivotTable.ReportFilters.Add("Filter2");
            pivotTable.RowLabels.Add("RLabel");
            pivotTable.ColumnLabels.Add("CLabel");
            pivotTable.Values.Add("Value").SummaryFormula = XL.XLPivotSummary.Sum;
            workbook.SaveAs(@"C:TempTest.xlsx");
        }

我将如何过滤" filter1"中的值?

例如,仅选择"未知"one_answers" gcom"的值。

在Excel中,枢轴过滤器看起来像这样:

Excel Pivot表报告过滤

我已经检查了有关枢轴的所有封闭XML文档,未提及ReportFilters功能。

源代码Wiki示例

请建议,此功能甚至可用吗?

任何建议/帮助都非常感谢。

不确定何时添加功能,但我可以与您的代码添加以下添加:

using (XL.XLWorkbook workbook = new XL.XLWorkbook(sourceFile))
    {
        var outSheet = workbook.Worksheets.Add("output table");
        outSheet.Cell(1, 1).InsertTable(dt, "out table", true);
        var datarange = outSheet.RangeUsed();
        var pivotSheet = workbook.Worksheets.Add("PivotTable");
        var pivotTable = pivotSheet.PivotTables.AddNew("Pivot Table", pivotSheet.Cell(3, 1), datarange);
        // I was not sure how to retrieve the filter after adding, but found Add() returns it for you.
        var filter1 = pivotTable.ReportFilters.Add("Filter1");
        // Now add your filter selection.
        filter1.AddSelectedValue("Unknown");
        filter1.AddSelectedValue("GCom");
        pivotTable.ReportFilters.Add("Filter2");
        pivotTable.RowLabels.Add("RLabel");
        pivotTable.ColumnLabels.Add("CLabel");
        pivotTable.Values.Add("Value").SummaryFormula = XL.XLPivotSummary.Sum;
        workbook.SaveAs(@"C:TempTest.xlsx");
    }

最新更新