Back to Devexpress

Pivot Grid Export

aspnet-114650-components-pivot-grid-export-export.md

latest14.5 KB
Original Source

Pivot Grid Export

  • Oct 23, 2023
  • 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.

Tip

Watch the video: DevExpress ASP.NET Pivot Grid: Data-Aware Export (YouTube)

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

|

|

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

| |

MHT

|

ExportMhtToResponse

ExportToMht

|

|

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

|

|

Exports ASPxPivotGrids data to the specified file in PDF format.

| |

RTF

|

ExportRtfToResponse

ExportToRtf

|

|

Exports ASPxPivotGrid data to the specified file in RTF format.

| |

TXT

|

ExportTextToResponse

ExportToText

|

|

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

| |

CSV

|

ExportCsvToResponse

ExportToCsv

|

|

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

| |

XLS

|

ExportXlsToResponse

ExportToXls

|

|

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

| |

XLSX

|

ExportXlsxToResponse

ExportToXlsx

|

|

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.

aspx
<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>
csharp
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);
        }
    }
}
vb
Imports System
Imports DevExpress.XtraPrinting
Imports DevExpress.Utils

Namespace ASPPivotGridExport
    Partial Public Class WebForm1
        Inherits System.Web.UI.Page

        Protected Sub DataAwareExportButton_Click(ByVal sender As Object, ByVal e As EventArgs)
            ' Exports using the Data-Aware type.
            ASPxPivotGridExporter1.ExportXlsxToResponse("ASPxPivotGrid", New XlsxExportOptionsEx With 
            {.AllowFixedColumns = DefaultBoolean.False, .SheetName = "Pivot Grid Export"}, True)
        End Sub

        Protected Sub WysiwygExportButton_Click(ByVal sender As Object, ByVal e As EventArgs)
            ' Exports using the WYSIWYG type.
            ASPxPivotGridExporter1.ExportPdfToResponse("ASPxPivotGrid", New PdfExportOptions() With 
            {.ShowPrintDialogOnOpen = True}, True)
        End Sub
    End Class
End Namespace

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

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.

csharp
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;
        }
    }
}
vb
Imports System
Imports System.Drawing
Imports DevExpress.Web.ASPxPivotGrid

Namespace WebPivotExportCustomizeCell
    Partial Public Class [Default]
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            ASPxPivotGridExporter1.ASPxPivotGridID = "ASPxPivotGrid1"
        End Sub

        Protected Sub ASPxButton1_Click(ByVal sender As Object, ByVal e As EventArgs)
            Dim exportOptions = New PivotXlsxExportOptions()
            AddHandler exportOptions.CustomizeCell, AddressOf exportOptions_CustomizeCell
            ASPxPivotGridExporter1.ExportXlsxToResponse("PivotGrid", exportOptions)
        End Sub

        Private Sub exportOptions_CustomizeCell(ByVal e As CustomizePivotCellEventArgs)
            If e.ExportArea = DevExpress.XtraPivotGrid.PivotExportArea.Data Then
                e.Formatting.BackColor = Color.Azure
                e.Formatting.Font.Italic = True
            End If
            e.Handled = True
        End Sub
    End Class
End Namespace

See Also

Export to Tabular Formats