Dev Express WPF 给控件提供了公共的导出方法:
- Export to PDF
- Export to HTML
- Export to MHT
- Export to Text
- Export to CSV
- Export to XLS
- Export to XLSX
- Export to RTF
- Export to DOCX
- Export to Image
以导出数据到Excel表格为例:
导出模式分为两种类型: Data-Aware Export 和 WYSIWYG Export
其中 WYSIWYG Export 模式支持导出结果保持GridControl设置的 PrintStyle,但在Excel中显示有写问题,同时性能也稍差一些,可能这是Dev 升级导出引擎的部分原因吧。
Data-Aware Export 模型导出数据则不支持PrintStyle,如果需要设置表格数据的展示样式,可以实现 CustomizeCell 事件;
测试代码:
<Window x:Class="GridExample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:local="clr-namespace:GridExample" Width="600" Height="350" > <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/GridExample;component/Themes/PrintCellStylesWPF.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> <Grid VerticalAlignment="Top"> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <dxg:GridControl Name="grid" AutoGenerateColumns="AddNew"> <dxg:GridControl.Columns> <dxg:GridColumn FieldName="PlainText"/> <dxg:GridColumn FieldName="MemoText" PrintCellStyle="{StaticResource MemoColumnPrintingStyle}" > <dxg:GridColumn.EditSettings> <dxe:MemoEditSettings/> </dxg:GridColumn.EditSettings> </dxg:GridColumn> <dxg:GridColumn FieldName="BooleanMember" PrintCellStyle="{StaticResource CheckEditColumnPrintingStyle}" > <dxg:GridColumn.EditSettings> <dxe:CheckEditSettings/> </dxg:GridColumn.EditSettings> </dxg:GridColumn> <dxg:GridColumn FieldName="Image" PrintCellStyle="{StaticResource ImageColumnPrintingStyle}" > <dxg:GridColumn.EditSettings> <dxe:PopupImageEditSettings/> </dxg:GridColumn.EditSettings> </dxg:GridColumn> </dxg:GridControl.Columns> <dxg:GridControl.View> <dxg:TableView Name="view" PrintColumnHeaderStyle="{StaticResource HeaderStyle}"/> </dxg:GridControl.View> </dxg:GridControl> <Button Grid.Row="1" Width="150" Name="PrintButton" Click="PrintButton_Click" Content="Show print preview"/> </Grid> </Window>