Xceed DataGrid for WPF v7.2 Documentation
Exporting to Excel (ExcelExporter Class)

The following example demonstrates how to export the content of a grid to Excel using the ExcelExporter class.

XAML
Copy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
  <Grid.Resources>
     <xcdg:DataGridCollectionViewSource x:Key="cvs_orders"
                                        Source="{Binding Source={x:Static Application.Current}, Path=Orders}">
        <xcdg:DataGridCollectionViewSource.GroupDescriptions>
           <xcdg:DataGridGroupDescription PropertyName="ShipCountry" />
        </xcdg:DataGridCollectionViewSource.GroupDescriptions>
       
        <xcdg:DataGridCollectionViewSource.StatFunctions>
           <xcdg:AverageFunction SourcePropertyName="Freight"
                                 ResultPropertyName="average_freight" />
        </xcdg:DataGridCollectionViewSource.StatFunctions>
     </xcdg:DataGridCollectionViewSource>
  </Grid.Resources>
  <DockPanel>
     <Button Content="Export"
             Click="ExportButton_Click"
             DockPanel.Dock="Top" />
     <xcdg:DataGridControl x:Name="OrdersGrid"
                           ItemsSource="{Binding Source={StaticResource cvs_orders}}"
                           AutoCreateDetailConfigurations="True">
        <xcdg:DataGridControl.DefaultGroupConfiguration>
           <xcdg:GroupConfiguration>
              <xcdg:GroupConfiguration.Footers>
                 <DataTemplate>
                    <xcdg:StatRow>
                       <xcdg:StatCell FieldName="Freight"
                                      ResultPropertyName="average_freight"/>
                    </xcdg:StatRow>
                 </DataTemplate>
              </xcdg:GroupConfiguration.Footers>
           </xcdg:GroupConfiguration>
        </xcdg:DataGridControl.DefaultGroupConfiguration>
     </xcdg:DataGridControl>
  </DockPanel>
</Grid>

The following code provides the code-behind implementation of the button's Click event in which the ExcelExporter object is configured and used to export the content.

VB.NET
Copy Code
Private Sub ExportButton_Click( ByVal sender As Object, ByVal e As RoutedEventArgs )
  Dim exporter As New ExcelExporter( Me.OrdersGrid )
  ' All details
  exporter.DetailDepth = Int.MaxValue
  ' The grid (0) and groups (1)
  exporter.StatFunctionDepth = 1
  exporter.ShowStatsInDetails = False
  exporter.ExportStatFunctionsAsFormulas = False
  exporter.Export( "d:\orders.xls" )
End Sub
C#
Copy Code
private void ExportButton_Click( object sender, RoutedEventArgs e )
{
 ExcelExporter exporter = new ExcelExporter( this.OrdersGrid );
 // All details
 exporter.DetailDepth = int.MaxValue;
 // The grid (0) and groups (1)
 exporter.StatFunctionDepth = 1;     
 exporter.ShowStatsInDetails = false;
 exporter.ExportStatFunctionsAsFormulas = false;
 exporter.Export( "d:\\orders.xls" );
}