<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<!--TODO: Button コントロールを追加します-->
<!--TODO: xamDataPresenter コントロールを追加します-->
</Grid>
このトピックでは、xamDataPresenter™ コントロールを使用して、Excel へのデータのエクスポートを実装する方法を説明します。
DataPresenter コントロールは、 DataPresenterExcelExporter クラスを使用して、Microsoft® Excel® フォーマットでデータをエクスポートできます。DataPresenterExcelExporter クラスは、ワークブックの作成、DataPresenter 行/セルの反復およびワークシートのセル値の設定のすべての作業をカプセル化します。
DataPresenterExcelExporter クラスはビジュアル要素ではありません。このため、ウィンドウのビジュアル ツリーに追加できません。ただし、XAML で DataPresenterExcelExporter オブジェクトのインスタンスを作成する場合、ウィンドウのリソースディクショナリに追加できます。
データをエクスポートできるようにするには、以下の NuGet パッケージをアプリケーションで参照する必要があります。
Infragistics.WPF.DataGrids
Infragistics.WPF.DataGrids.Excel
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
エクスポート手順の概念的な概要
グリッドを追加
エクスポート ボタンを追加
xamDataPresenter コントロールを追加
コード ビハインドに using/Imports のディレクティブを追加
(条件付き) Button の Click イベントのイベント ハンドラーを追加
DataPresenterExcelExporter オブジェクトのインスタンスを作成
エクスポート メソッドを呼び出す
(条件付き) 実装を検証
グリッドを追加します。
2 つの RowDefinition オブジェクトがある Grid パネルをウィンドウに追加します。
XAML の場合:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<!--TODO: Button コントロールを追加します-->
<!--TODO: xamDataPresenter コントロールを追加します-->
</Grid>
エクスポート ボタンを追加します。
Button コントロールを Grid パネルの最初の行に追加し、以下のように構成します。
ボタンの Content プロパティを Export DataPresenter に設定します。
ボタンの Click イベントにイベント ハンドラーを接続します。
XAML の場合:
<Button Content="Export DataPresenter" Click="Button_Click" />
xamDataPresenter コントロールを追加します。
xamDataPresenter コントロールを Grid パネルの 2 番目の行に追加し、プロパティを以下のように構成します。
Name プロパティ - xamDataPresenter1。
BindToSampleData プロパティ - True。
XAML の場合:
<igDP:XamDataPresenter Name="xamDataPresenter1" BindToSampleData="True">
</igDP:XamDataPresenter>
コード ビハインドに using/Imports のディレクティブを追加します。
コード ビハインドを開き、コード ビハインド内に using/Imports のディレクティブを配置すれば、メンバーの完全に記述された名前を常にタイプする必要がなくなります。コードでインスタンスを作成する代わりに、DataPresenterExcelExporter オブジェクトのインスタンスをウィンドウのリソース ディクショナリに追加したい場合には、XML 名前空間宣言を追加することが必要になります。
XAML の場合:
xmlns:igExcelExporter="http://infragistics.com/ExcelExporter"
Visual Basic の場合:
Imports Infragistics.Windows.DataPresenter.ExcelExporter
Imports Infragistics.Documents.Excel
C# の場合:
using Infragistics.Windows.DataPresenter.ExcelExporter;
using Infragistics.Documents.Excel;
(条件付き) Button コントロールの Click イベントのイベント ハンドラーを追加します。
メソッド スタブが作成されていない場合には、Button コントロールの Click イベントのイベント ハンドラーを追加することが必要になります。
Visual Basic の場合:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
'TODO: DataPresenterExcelExporter オブジェクトのインスタンスを作成します
'TODO: DataPresenterExcelExporter オブジェクトの Export メソッドを呼び出します
End Sub
C# の場合:
private void Button_Click(object sender, RoutedEventArgs e)
{
//TODO: DataPresenterExcelExporter オブジェクトのインスタンスを作成します
//TODO: DataPresenterExcelExporter オブジェクトの Export メソッドを呼び出します
}
DataPresenterExcelExporter オブジェクトのインスタンスを作成します。
XAML でインスタンスを作成している場合には、ウィンドウのリソース ディクショナリに追加できます。
XAML の場合:
<Window.Resources>
<igExcelExporter:DataPresenterExcelExporter x:Key="excelExporter1" />
</Window.Resources>
Visual Basic の場合:
Dim exporter As New DataPresenterExcelExporter()
'DataPresenterExcelExporter オブジェクトをウィンドウのリソース ディクショナリに追加した場合には、コードのこの行を使用します
'Dim exporter A DataPresenterExcelExporter = DirectCast(Me.Resources("excelExporter1"), DataPresenterExcelExporter)
C# の場合:
DataPresenterExcelExporter exporter = new DataPresenterExcelExporter();
//DataPresenterExcelExporter オブジェクトをウィンドウのリソース ディクショナリに追加した場合には、コードのこの行を使用します
//DataPresenterExcelExporter exporter = (DataPresenterExcelExporter)this.Resources["excelExporter1"];
エクスポート メソッドを呼び出します。
データを同期でエクスポートするか、非同期でエクスポートするかによって、 Export と ExportAsync の 2 つのメソッドを選択できます。エクスポートされたファイルのファイル拡張子はターゲットの Excel のバージョンと一致する必要があります (Excel 2007/2010 の場合は .xlsx、Excel 97/2003 の場合は .xls)。
データを同期でエクスポートするには:
DataPresenterExcelExporter オブジェクトの Export メソッドを呼び出します。
Visual Basic の場合:
exporter.Export(Me.xamDataPresenter1, "xamDataPresenter1.xlsx", WorkbookFormat.Excel2007)
C# の場合:
exporter.Export(this.xamDataPresenter1, "xamDataPresenter1.xlsx", WorkbookFormat.Excel2007);
データを非同期でエクスポートするには:
DataPresenterExcelExporter オブジェクトの ExportAsync を呼び出してデータを非同期でエクスポートします。
Visual Basic の場合:
exporter.ExportAsync(Me.xamDataPresenter1, "xamDataPresenter1.xlsx", WorkbookFormat.Excel2007)
C# の場合:
exporter.ExportAsync(this.xamDataPresenter1, "xamDataPresenter1.xlsx", WorkbookFormat.Excel2007);
(条件付き) 実装を検証します。
プロジェクトを実行して、エクスポート ボタンをクリックします。これによって xamDataPresenter コントロールが Excel にエクスポートされます。