Table of Contents |
---|
Intro
This example takes an existing workbook that contains some data and creates a PivotTable. The workbook used in this example is available for download: Download BasicExample.xlsx.
Before writing any PivotTable code, make sure to open the workbook with ExcelApplication
and get references to the data worksheet and a worksheet for the PivotTable. See Adding OfficeWriter to your .NET Application.
Writing the code
Step 1. Set up the data source
The data source needs to be a continuous block of cells with a header row with column names. The data source can be defined as an Area
or a NamedRange
.
Here is a snapshot of the data for this tutorial, which can also be found in BasicExample.xlsx:
There are 9 columns and 244 rows in the data set, including the row with the header values.
In this case, the data source for the PivotTable will be a dynamically defined Area
on the data worksheet. Note that the row of column names is included in the area.
Step 2. Create the PivotTable
To create a PivotTable
, call CreatePivotTable
on the PivotTables
collection. Specify the 0-indexed row and column values for the PivotTable location:
After creating the PivotTable, always set RefreshOnOpen
to true
.
ExcelWriter does not have the ability to render a PivotTable, so any modifications made to a PivotTable will not take affect until the output file is opened in Excel and the PivotTable is refreshed. If RefreshOnOpen
is true
, Excel will refresh the PivotTable when the workbook opens, which will re-render the PivotTable.
Step 3. Set PivotTable Properties
There are two types of PivotTable properties:
- The equivalents of PivotTable Options in Excel
- Other properties, such as name or data source
The properties found in Excel by going to PivotTable Options
Other PivotTable properties - friendly error on value, empty value
Step 4. Add PivotTableFields
Next, add PivotTableFields
to the PivotTable. There are four types of PivotTableField
: DataFields
, RowLabels
, ColumnLabels
, and PageFields
(or report filters). The Pivot field properties are available for all four types of PivotTableField
, however some properties will not have an affect, depending on the type of field. These properties can be read and written to, but they will be ignored by Excel.
PageFields
Adding a page field - behavior
RowLabels and ColumnLabels
Adding a pivot table field - row labels / column labels, source fields, naming convention, changing the display name
DataFields
Adding data fields - calculated fields, naming conventions, changing the display name
DataField specific properties
Summarize By
Show Value As
Additional Resources
- Answers post on CopySheet
- Documentation on creating an ExcelTemplate PivotTable
- PivotTable Glossary
- Answers post on how to set properties that aren't available