epplus

Pivot Table

Introduction#

Pivot table is one kind of interactive table, which can be used to calculate data, such as get sum or count data. Also, users can change pivot table layout for analyzing data with different ways or reassign row/column label. Every time users change layout, data will be recalculated in pivot table.

Creating a Pivot Table

//create a new ExcelPackage
using (ExcelPackage excelPackage = new ExcelPackage())
{
    //create 2 WorkSheets. One for the source data and one for the Pivot table
    ExcelWorksheet worksheetPivot = excelPackage.Workbook.Worksheets.Add("Pivot");
    ExcelWorksheet worksheetData = excelPackage.Workbook.Worksheets.Add("Data");

    //add some source data
    worksheetData.Cells["A1"].Value = "Column A";
    worksheetData.Cells["A2"].Value = "Group A";
    worksheetData.Cells["A3"].Value = "Group B";
    worksheetData.Cells["A4"].Value = "Group C";
    worksheetData.Cells["A5"].Value = "Group A";
    worksheetData.Cells["A6"].Value = "Group B";
    worksheetData.Cells["A7"].Value = "Group C";
    worksheetData.Cells["A8"].Value = "Group A";
    worksheetData.Cells["A9"].Value = "Group B";
    worksheetData.Cells["A10"].Value = "Group C";
    worksheetData.Cells["A11"].Value = "Group D";

    worksheetData.Cells["B1"].Value = "Column B";
    worksheetData.Cells["B2"].Value = "emc";
    worksheetData.Cells["B3"].Value = "fma";
    worksheetData.Cells["B4"].Value = "h2o";
    worksheetData.Cells["B5"].Value = "emc";
    worksheetData.Cells["B6"].Value = "fma";
    worksheetData.Cells["B7"].Value = "h2o";
    worksheetData.Cells["B8"].Value = "emc";
    worksheetData.Cells["B9"].Value = "fma";
    worksheetData.Cells["B10"].Value = "h2o";
    worksheetData.Cells["B11"].Value = "emc";

    worksheetData.Cells["C1"].Value = "Column C";
    worksheetData.Cells["C2"].Value = 299;
    worksheetData.Cells["C3"].Value = 792;
    worksheetData.Cells["C4"].Value = 458;
    worksheetData.Cells["C5"].Value = 299;
    worksheetData.Cells["C6"].Value = 792;
    worksheetData.Cells["C7"].Value = 458;
    worksheetData.Cells["C8"].Value = 299;
    worksheetData.Cells["C9"].Value = 792;
    worksheetData.Cells["C10"].Value = 458;
    worksheetData.Cells["C11"].Value = 299;

    worksheetData.Cells["D1"].Value = "Column D";
    worksheetData.Cells["D2"].Value = 40075;
    worksheetData.Cells["D3"].Value = 31415;
    worksheetData.Cells["D4"].Value = 384400;
    worksheetData.Cells["D5"].Value = 40075;
    worksheetData.Cells["D6"].Value = 31415;
    worksheetData.Cells["D7"].Value = 384400;
    worksheetData.Cells["D8"].Value = 40075;
    worksheetData.Cells["D9"].Value = 31415;
    worksheetData.Cells["D10"].Value = 384400;
    worksheetData.Cells["D11"].Value = 40075;

    //define the data range on the source sheet
    var dataRange = worksheetData.Cells[worksheetData.Dimension.Address];

    //create the pivot table
    var pivotTable = worksheetPivot.PivotTables.Add(worksheetPivot.Cells["B2"], dataRange, "PivotTable");

    //label field
    pivotTable.RowFields.Add(pivotTable.Fields["Column A"]);
    pivotTable.DataOnRows = false;

    //data fields
    var field = pivotTable.DataFields.Add(pivotTable.Fields["Column B"]);
    field.Name = "Count of Column B";
    field.Function = DataFieldFunctions.Count;

    field = pivotTable.DataFields.Add(pivotTable.Fields["Column C"]);
    field.Name = "Sum of Column C";
    field.Function = DataFieldFunctions.Sum;
    field.Format = "0.00";

    field = pivotTable.DataFields.Add(pivotTable.Fields["Column D"]);
    field.Name = "Sum of Column D";
    field.Function = DataFieldFunctions.Sum;
    field.Format = "€#,##0.00";
}

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow