<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 オブジェクトのインスタンスを作成する場合、ウィンドウのリソースディクショナリに追加できます。
データをエクスポートできるようにするには、以下の参照をプロジェクトに追加する必要があります(ソリューション エクスプローラーで)。
InfragisticsWPF4.v20.1.dll
InfragisticsWPF4.Editors.v20.1.dll
InfragisticsWPF4.DataPresenter.v20.1.dll
InfragisticsWPF4.Documents.Excel.v20.1.dll
InfragisticsWPF4.DataPresenter.ExcelExporter.v20.1.dll
エクスポート手順の概念的な概要
グリッドを追加
エクスポート ボタンを追加
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 にエクスポートされます。