Skip to main content

DxGrid.ExportToXlsxAsync(String, GridXlExportOptions) Method

Exports grid data in XLSX format and downloads the resulting file to the client machine.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v24.1.dll

NuGet Package: DevExpress.Blazor

Declaration

public Task ExportToXlsxAsync(
    string fileName,
    GridXlExportOptions options = null
)

Parameters

Name Type Description
fileName String

The name of the downloaded file.

Optional Parameters

Name Type Default Description
options GridXlExportOptions null

An object that contains export options.

Returns

Type Description
Task

The task that is completed when the file is downloaded.

Remarks

Call the ExportToXlsAsync method to export grid data in XLSX format. The method overloads allow you to write the result to a stream (ExportToXlsxAsync(Stream, GridXlExportOptions)) or to a file downloaded to a client machine (the current overload).

The method accepts a GridXlExportOptions object as a parameter. You can use this parameter to set up export settings.

Run Demo: Grid - Export

<DxGrid @ref="Grid"
        Data="@Data"
        SelectionMode="GridSelectionMode.Multiple">
    <Columns>
        <DxGridSelectionColumn Width="60px" AllowSelectAll="true" />
        <DxGridDataColumn FieldName="ContactName" Width="15%" />
        <DxGridDataColumn FieldName="ContactTitle" Width="15%" />
        <DxGridDataColumn FieldName="CompanyName" Width="20%" />
        <DxGridDataColumn FieldName="Country" Width="15%" />
        <DxGridDataColumn FieldName="FullAddress" UnboundType="GridUnboundColumnType.String" 
                          UnboundExpression="[City] + ' - ' + [PostalCode] + ' - ' + [Address]" />
    </Columns>
</DxGrid>
@* ... *@
<OptionButton Text="Export to XLSX" OnClick="ExportXlsx_Click" />
@* ... *@
@code {
    IEnumerable<object> Data { get; set; }
    IGrid Grid { get; set; }
    protected override async Task OnInitializedAsync() {
        Data = await NwindDataService.GetCustomersAsync();
    }
    async Task ExportXlsx_Click() {
       await Grid.ExportToXlsxAsync("ExportResult", new GridXlExportOptions() {
            ExportSelectedRowsOnly = true,
            CustomizeCell = OnCustomizeCell
        });
    }
    void OnCustomizeCell (GridExportCustomizeCellEventArgs args) {
        if(args.ColumnFieldName == "ContactName" && args.AreaType == SheetAreaType.DataArea)
            args.Formatting.Font = new XlCellFont() { Italic = true };
        args.Handled = true;
    }
}

For more information about data export in the Grid component, refer to the following topic: Export Data in Blazor Grid.

Export Specifics and Limitations

  • Content of templates is not exported, including detail grids.
  • Custom summaries implemented in the CustomSummary grid event, are exported as plain text.
  • Data columns anchored to the right edge become regular columns, while columns anchored to the Grid’s left edge remain frozen.
  • Appearance settings applied by style settings or in the CustomizeElement event handler are not exported. You can handle the CustomizeCell event to customize grid elements’ appearance in the the exported document.

If the grid is bound to a GridDevExtremeDataSource object, the following limitations apply:

  • If you want to export selected rows only, specify the KeyFieldName property.
  • If you export grouped data, you may see a different group breakdown in the resulting document. This happens because export depends on a database collation. For example, the same string with different capitalization may form multiple groups in the exported document. The Grid component puts such values into a single group.

See the following article for more information about Microsoft Excel limitations (for example, row count and column count): Excel specifications and limits.

See Also