Skip to main content

DxGrid.ExportToCsvAsync(String, GridCsvExportOptions) Method

Exports grid data in CSV 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 ExportToCsvAsync(
    string fileName,
    GridCsvExportOptions options = null
)

Parameters

Name Type Description
fileName String

The name of the downloaded file.

Optional Parameters

Name Type Default Description
options GridCsvExportOptions null

An object that contains export options.

Returns

Type Description
Task

The task that is completed when the file is downloaded.

Remarks

Call the ExportToCsvAsync method to export grid data in CSV format. Note that only data cell values are exported - group rows, summaries, and cell style settings are ignored.

The method overloads allow you to write the result to a stream (ExportToCsvAsync(Stream, GridCsvExportOptions)) or to a file downloaded to a client machine (the current overload). The method accepts a GridCsvExportOptions object as a parameter. You can use this parameter to set up export settings.

Run Demo: Grid - Export

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

Important

Security Considerations

Exported data can contain executable content. To prevent possible security vulnerabilities, set the EncodeExecutableContent property to true to enclose potentially dangerous content in quotation marks prior to exporting it to the CSV format. To learn more, see the property description.

<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 CSV" OnClick="ExportCsv_Click" />
@* ... *@
@code {
    IEnumerable<object> Data { get; set; }
    IGrid Grid { get; set; }
    protected override async Task OnInitializedAsync() {
        Data = await NwindDataService.GetCustomersAsync();
    }
    async Task ExportCsv_Click() {
        await Grid.ExportToCsvAsync("ExportResult", new GridCsvExportOptions() {
            ExportSelectedRowsOnly = true,
        });
    }
}

Large Data Limitations

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 Also