Skip to main content

Pivot Grid Export

  • 6 minutes to read

The Pivot Grid control is shipped with the ASPxPivotGridExporter component. This component allows you to export the ASPxPivotGrid’s data to a file or stream in various formats - HTML, MHT, PDF, RTF, TXT, CSV, XLS or XLSX.

Export_Overview

Export Types

Two export types are supported when exporting data from a Pivot Grid control.

  • WYSIWYG Export Type - In this export type, the pivot grid layout is retained in resulting documents. Specific data shaping options (like sorting, grouping, filtering, etc.) are not retained.
  • Data-aware Export Type - The export type, optimized for subsequent analysis of pivot grid data within Microsoft Excel. Various data shaping options that are applied within the pivot grid are retained in output documents. This type is supported for XLS(X) and CSV formats by default. For other formats (PDF, RTF, TXT, etc.) only the WYSIWYG type is available.

By using the XLS(X) and CSV formats you can specify export type in two ways.

  • For all controls - Set the static ExportSettings.DefaultExportType property that allows you to choose the required export type used by default.
  • For each control - Specify export type with each call of the XLS(X) or CSV export methods (when using these method overloads with an options parameter). Create an XlsExportOptionsEx object (or XlsxExportOptionsEx, CsvExportOptionsEx objects), set its ExportType property and pass this object to the XLS(X)/CSV export method.

Exporting Data

To export the Pivot Grid’s data, add the ASPxPivotGridExporter component, assign the pivot grid’s ID to the ASPxPivotGridExporter.ASPxPivotGridID property and call one of the following methods.

Note

If the ASPxPivotGridExporter.ASPxPivotGridID property is not set, the first determined pivot grid on a page will be exported.

Output Format

Methods

Data-Aware Support

Description

HTML

ExportHtmlToResponse

ExportToHtml

No

Exports ASPxPivotGrid data to the specified file in HTML format, using the specified character encoding.

MHT

ExportMhtToResponse

ExportToMht

No

Exports ASPxPivotGrid data to the specified file in MHT format using the specified character encoding with the specified title. The output file can be compressed (secondary characters such as spaces are removed) if required.

PDF

ExportPdfToResponse

ExportToPdf

No

Exports ASPxPivotGrids data to the specified file in PDF format.

RTF

ExportRtfToResponse

ExportToRtf

No

Exports ASPxPivotGrid data to the specified file in RTF format.

TXT

ExportTextToResponse

ExportToText

No

Exports ASPxPivotGrid data to the specified file in TXT format, using the specified separator string and encoding settings.

CSV

ExportCsvToResponse

ExportToCsv

Yes

Exports the ASPxPivotGrid’s data to the specified file in CSV format.

XLS

ExportXlsToResponse

ExportToXls

Yes

Exports ASPxPivotGrid data to the specified file in XLS format using the specified options.

XLSX

ExportXlsxToResponse

ExportToXlsx

Yes

Exports ASPxPivotGrid data to the specified file in XLSX (MS Excel 2007) format using the specified options.

Additional export settings can be customized when calling the ExportToXls(x) method overloads that take an options parameter. This parameter can be set to an XlsExportOptionsEx object (when using the ExportToXls method), to an XlsxExportOptionsEx object (when using the ExportToXlsx method), etc. You can also use the ASPxPivotGridExporter.OptionsPrint property to get an access to the export options.

Limitations

Note, that the ASPxPivotGridExporter component cannot export the following content.

  • the content of template fields and cells;
  • the results of styles customization;
  • images.

Examples

How to Export the Pivot Grid’s Data to a File

This example shows how to export the pivot grid’s data using the Data-Aware or WYSIWYG types and set the export options.

  • Click the Export to XLSX button to export data using the Data-Aware type. In the exported XLSX file, fixed row headers are disabled and a sheet name is set to “Pivot Grid Export”.
  • Click the Export to PDF button to export data using the WYSIWYG type. The Print dialog is displayed when the exported PDF file is opened.

ex_PivotGridExport

<dx:ASPxButton ID="DataAwareExportButton" runat="server" 
    Text="Export to XLSX" onclick="DataAwareExportButton_Click" ToolTip="Export using the Data-Aware type."/> 
<dx:ASPxButton ID="WysiwygExportButton" runat="server" Text="Export to PDF" 
    onclick="WysiwygExportButton_Click" ToolTip="Export using the WYSIWYG type." />

<dx:ASPxPivotGrid ID="ASPxPivotGrid1" runat="server" ClientIDMode="AutoID" 
    DataSourceID="SqlDataSource1">
    <Fields>
        <dx:PivotGridField ID="fieldCountry" Area="ColumnArea" AreaIndex="0" 
            FieldName="Country">
        </dx:PivotGridField>
        <dx:PivotGridField ID="fieldCategoryName" Area="RowArea" AreaIndex="0" 
            Caption="Category" FieldName="CategoryName">
        </dx:PivotGridField>
        <dx:PivotGridField ID="fieldProductName" Area="RowArea" AreaIndex="1" 
            Caption="Product" FieldName="ProductName">
        </dx:PivotGridField>
        <dx:PivotGridField ID="fieldExtendedPrice" Area="DataArea" AreaIndex="0" 
            Caption="Extended Price" FieldName="Extended_Price">
        </dx:PivotGridField>
        <dx:PivotGridField ID="fieldSalesPerson" Area="ColumnArea" AreaIndex="1" 
            Caption="Sales Person" FieldName="Sales_Person">
        </dx:PivotGridField>
        <dx:PivotGridField ID="fieldQuantity" Area="DataArea" AreaIndex="1" 
            FieldName="Quantity">
        </dx:PivotGridField>
    </Fields>
</dx:ASPxPivotGrid>
<dx:ASPxPivotGridExporter ID="ASPxPivotGridExporter1" runat="server">
</dx:ASPxPivotGridExporter>
using System;
using DevExpress.XtraPrinting;
using DevExpress.Utils;

namespace ASPPivotGridExport {
    public partial class WebForm1 : System.Web.UI.Page {
        protected void DataAwareExportButton_Click(object sender, EventArgs e) {
            // Exports using the Data-Aware type.
            ASPxPivotGridExporter1.ExportXlsxToResponse("ASPxPivotGrid", new XlsxExportOptionsEx {
                AllowFixedColumns = DefaultBoolean.False,
                SheetName = "Pivot Grid Export"
            }, 
            true);
        }

        protected void WysiwygExportButton_Click(object sender, EventArgs e) {
            // Exports using the WYSIWYG type.
            ASPxPivotGridExporter1.ExportPdfToResponse("ASPxPivotGrid", new PdfExportOptions() {
                ShowPrintDialogOnOpen = true,
            }, true);
        }
    }
}

How to Add a Custom Header to an Exported PDF document

This example illustrates how to add a header to a document exported to PDF. The ASPxPivotGrid control exports its content to a PDF file, adding two lines of text to the document’s header. The same technique enables you to add custom text to the document’s footer. To change the header text, change the value of the corresponding TextBrick. The image below illustrates the resulting PDF file with custom headers:

View Example

pivot-grid-export-with-custom-header

How to Customize a Cell in the Exported Excel Document

When exporting an ASPxPivotGrid control to XLSX (or XLS) format, you can customize a cell appearance in the exported document using the PivotXlsxExportOptions.CustomizeCell (or PivotXlsExportOptions.CustomizeCell) event.

In this example, custom appearance settings (the azure background and italic font) are applied to the cells that correspond to the Pivot Grid’s data area. The CustomizePivotCellEventArgs.ExportArea property is used to identify cell location in the exported Excel document. The cell format is set by the CustomizePivotCellEventArgs.Formatting property.

using System;
using System.Drawing;
using DevExpress.Web.ASPxPivotGrid;

namespace WebPivotExportCustomizeCell
{
    public partial class Default : System.Web.UI.Page {
        protected void Page_Load(object sender, EventArgs e)
        {
            ASPxPivotGridExporter1.ASPxPivotGridID = "ASPxPivotGrid1";
        }

        protected void ASPxButton1_Click(object sender, EventArgs e)
        {
            var exportOptions = new PivotXlsxExportOptions();
            exportOptions.CustomizeCell += 
                new CustomizePivotCellEventHandler(exportOptions_CustomizeCell);
            ASPxPivotGridExporter1.ExportXlsxToResponse("PivotGrid", exportOptions);
        }

        void exportOptions_CustomizeCell(CustomizePivotCellEventArgs e)
        {
            if (e.ExportArea == DevExpress.XtraPivotGrid.PivotExportArea.Data) {
                e.Formatting.BackColor = Color.Azure;
                e.Formatting.Font.Italic = true; 
            }
            e.Handled = true;
        }
    }
}
See Also