blazor-devexpress-dot-blazor-dot-gridxlexportoptions-b87c1495.md
In ExportSelectedRowsOnly mode, specifies whether to export parent group rows.
Namespace : DevExpress.Blazor
Assembly : DevExpress.Blazor.v25.2.dll
NuGet Package : DevExpress.Blazor
[DefaultValue(GridSelectedRowsExportMode.Flat)]
public GridSelectedRowsExportMode SelectedRowsExportMode { get; set; }
| Type | Default | Description |
|---|---|---|
| GridSelectedRowsExportMode | Flat |
An enumeration value.
|
Available values:
| Name | Description |
|---|---|
| Flat |
The Grid exports selected rows as a flat list.
| | KeepGrouping |
The Grid exports selected records and corresponding group rows.
|
Note
This property is not in effect if ExportSelectedRowsOnly is set to false (default).
When exporting Grid data to an Excel format, you can activate the ExportSelectedRowsOnly option. If active, the Grid component ignores group settings and exports selected rows as flat data.
Set SelectedRowsExportMode to KeepGrouping to export selected records and their parent group rows:
@rendermode InteractiveServer
@inject WeatherForecastService ForecastService
<DxGrid @ref="Grid" Data="@forecasts" ShowGroupPanel="true">
<Columns>
<DxGridSelectionColumn Width="60px" AllowSelectAll="true" />
<DxGridDataColumn Caption="Date" FieldName="Date" />
<DxGridDataColumn Caption="Temperature (C)" FieldName="TemperatureC" />
<DxGridDataColumn Caption="Temperature (F)" FieldName="TemperatureF" />
<DxGridDataColumn Caption="Summary" FieldName="Summary" GroupIndex="0" />
</Columns>
<ToolbarTemplate>
<DxToolbar>
<DxToolbarItem Text="Export to XLSX" Click="ExportXlsx_Click" BeginGroup="true" />
</DxToolbar>
</ToolbarTemplate>
</DxGrid>
@code {
IGrid Grid;
object forecasts;
protected override async Task OnInitializedAsync() {
forecasts = await ForecastService.GetForecastAsync();
}
async Task ExportXlsx_Click() {
await Grid.ExportToXlsxAsync("ExportResult", new GridXlExportOptions() {
ExportSelectedRowsOnly = true,
SelectedRowsExportMode = GridSelectedRowsExportMode.KeepGrouping
});
}
}
using System;
public class WeatherForecast {
public int ID { get; set; }
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
public class WeatherForecastService {
public readonly string[] Summaries = new[] {
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private List<WeatherForecast>? Forecasts;
public Task<List<WeatherForecast>> GetForecastAsync() {
if (Forecasts == null) {
var rnd = new Random();
Forecasts = Enumerable.Range(1, 25).Select(index => new WeatherForecast {
ID = index,
Date = DateTime.Today.AddDays(index),
TemperatureC = rnd.Next(-20, 55),
Summary = Summaries[rnd.Next(Summaries.Length)]
}).ToList();
}
return Task.FromResult(Forecasts);
}
public Task<List<WeatherForecast>> ChangeForecastAsync(WeatherForecast changed) {
var originalForecast = Forecasts.FirstOrDefault(i => i.ID == changed.ID);
if (originalForecast != null) {
originalForecast.TemperatureC = changed.TemperatureC;
originalForecast.Summary = changed.Summary;
originalForecast.Date = changed.Date;
}
else {
Forecasts.Add(changed);
}
return Task.FromResult(Forecasts);
}
public Task<List<WeatherForecast>> Remove(WeatherForecast forecast) {
Forecasts.Remove(forecast);
return Task.FromResult(Forecasts);
}
}
// ...
builder.Services.AddSingleton<WeatherForecastService>();
Read Tutorial: Export to XLS/XLSX Run Demo: Export Data
See Also