Angular PivotGrid - export
A user can click the Export button to save an Excel file with the exported data. Data types, sort, filter, and group settings are maintained.
The following instructions show how to enable and configure client-side export:
Install or reference the required libraries
This feature requires ExcelJS v4+ and FileSaver v2.0.2+.Installation commandtsconfig.app.json- npm install --save exceljs file-saver
- {
- "compilerOptions": {
- // ...
- "paths": {
- // ...
- "exceljs": [
- "node_modules/exceljs/dist/exceljs.min.js"
- ]
- }
- }
- }
Enable the export UI
Set the export.enabled property to true:app.component.htmlapp.component.tsapp.module.ts- <dx-pivot-grid ... >
- <dxo-export [enabled]="true"></dxo-export>
- </dx-pivot-grid>
- import { Component } from '@angular/core';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- // ...
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxPivotGridModule } from 'devextreme-angular';
- @NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- DxPivotGridModule
- ],
- providers: [ ],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
Export the PivotGrid
Implement the onExporting handler and call the exportPivotGrid(options) method in it. In the code below, this method exports the PivotGrid as is, but you can use ExcelExportPivotGridProps to configure export settings, including cell customization. The PivotGrid is exported to an Excel worksheet that is created using the ExcelJS API. To save the Excel document, call the FileSaver's saveAs method. Thee.cancel
parameter disables the deprecated built-in export implementation with fewer capabilities.app.component.htmlapp.component.tsapp.module.ts- <dx-pivot-grid ...
- (onExporting)="onExporting($event)">
- <dxo-export [enabled]="true"></dxo-export>
- </dx-pivot-grid>
- import { Component } from '@angular/core';
- import { exportPivotGrid } from 'devextreme/excel_exporter';
- import { Workbook } from 'exceljs';
- import saveAs from 'file-saver';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- onExporting(e) {
- const workbook = new Workbook();
- const worksheet = workbook.addWorksheet('Main sheet');
- exportPivotGrid({
- component: e.component,
- worksheet: worksheet,
- customizeCell: function(options) {
- const excelCell = options;
- excelCell.font = { name: 'Arial', size: 12 };
- excelCell.alignment = { horizontal: 'left' };
- }
- }).then(function() {
- workbook.xlsx.writeBuffer()
- .then(function(buffer: BlobPart) {
- saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'PivotGrid.xlsx');
- });
- });
- e.cancel = true;
- }
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxPivotGridModule } from 'devextreme-angular';
- @NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- DxPivotGridModule
- ],
- providers: [ ],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
The following restrictions apply when users export PivotGrid:
- Only XLSX files are supported out of the box. To export PivotGrid to CSV, call the exportPivotGrid(options) method as shown in the following ticket: Export PivotGrid into CSV file.
- Only visible rows and columns are exported.
If you have technical questions, please create a support ticket in the DevExpress Support Center.