<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<!--TODO: Button コントロールを追加します-->
<!--TODO: xamDataPresenter コントロールを追加します-->
</Grid>
このトピックでは、xamDataPresenter コントロールを使用して、Word へのデータの エクスポートを実装する方法を説明します。
DataPresenter コントロールは、DataPresenterExcelExporter クラスを使用して、Microsoft® Word® フォーマットでデータをエクスポートできます。DataPresenterWordWriter クラスは、特定の DataPresenterBase の値/レイアウトを表すテーブルを含む Word 文書を作成するすべての作業をカプセル化します。
DataPresenterWordWriter クラスはビジュアル要素ではありません。このため、ウィンドウのビジュアル ツリーに追加できません。ただし、XAML で DataPresenterWordWriter オブジェクトのインスタンスを作成したい場合には、ウィンドウのリソースディクショナリに追加できます。
データをエクスポートできるようにするには、以下の NuGet パッケージを参照する必要があります。
Infragistics.WPF.DataGrids
Infragistics.WPF.DataGrids.Word
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
エクスポート手順の概念的な概要
グリッドを追加
エクスポート ボタンを追加
xamDataPresenter コントロールを追加
コード ビハインドに using/imports のディレクティブを追加
(条件付き) Button の Click イベントのイベント ハンドラーを追加
DataPresenterWordWriter オブジェクトのインスタンスを作成
エクスポート メソッドを呼び出す
(条件付き) 実装を検証
グリッドを追加します。
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 のディレクティブを配置すれば、メンバーの完全に記述された名前を常にタイプする必要がなくなります。コードでインスタンスを作成する代わりに、DataPresenterWordWriter オブジェクトのインスタンスをウィンドウのリソース ディクショナリに追加したい場合には、XML 名前空間宣言を追加することが必要になります。
XAML の場合:
xmlns:igWordWriter="http://infragistics.com/WordWriter"
Visual Basic の場合:
imports Infragistics.Windows.DataPresenter.WordWriter
C# の場合:
using Infragistics.Windows.DataPresenter.WordWriter;
(条件付き) Button の Click イベントのイベント ハンドラーを追加します。
メソッド スタブが作成されていない場合には、Button コントロールの Click イベントのイベント ハンドラーを追加することが必要になります。
Visual Basic の場合:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
'TODO: DataPresenterWordWriter オブジェクトのインスタンスを作成します
'TODO: DataPresenterWordWriter オブジェクトの Export メソッドを呼び出します
End Sub
C# の場合:
private void Button_Click(object sender, RoutedEventArgs e)
{
//TODO: DataPresenterWordWriter オブジェクトのインスタンスを作成します
//TODO: DataPresenterWordWriter オブジェクトの Export メソッドを呼び出します
}
DataPresenterWordWriter オブジェクトのインスタンスを作成します。
XAML でインスタンスを作成している場合には、ウィンドウのリソース ディクショナリに追加できます。
XAML の場合:
<Window.Resources>
<igWordWriter:DataPresenterWordWriter x:Key="wordWriter1" />
</Window.Resources>
Visual Basic の場合:
Dim writer As New DataPresenterWordWriter()
' DataPresenterWordWriter オブジェクトを
' ウィンドウのリソース ディクショナリに追加した場合には、コードのこの行を使用します
' Dim writer As DataPresenterWordWriter =
' DirectCast(Me.Resources("wordWriter1"), DataPresenterWordWriter)
C# の場合:
DataPresenterWordWriter writer = new DataPresenterWordWriter();
// DataPresenterWordWriter オブジェクトを
// ウィンドウのリソース ディクショナリに追加した場合には、コードのこの行を使用します
// DataPresenterWordWriter writer =
// (DataPresenterWordWriter)this.Resources["wordWriter1"];
エクスポート メソッドを呼び出します。
データを同期でエクスポートするか、非同期でエクスポートするかによって、 Export と ExportAsync の 2 つのメソッドを選択できます。
データを同期でエクスポートするには:
DataPresenterWordWriter オブジェクトの Export メソッドを呼び出します。
Visual Basic の場合:
writer.Export(Me.xamDataPresenter1, "xamDataPresenter1.docx")
C# の場合:
writer.Export(this.xamDataPresenter1, "xamDataPresenter1.docx");
データを非同期でエクスポートするには:
DataPresenterWordWriter オブジェクトの ExportAsync を呼び出してデータを非同期でエクスポートします。
Visual Basic の場合:
writer.ExportAsync(Me.xamDataPresenter1, "xamDataPresenter1.docx")
C# の場合:
writer.ExportAsync(this.xamDataPresenter1, "xamDataPresenter1.docx");
(条件付き) 実装を検証します。
プロジェクトを実行して、エクスポート ボタンをクリックします。これによって xamDataPresenter コントロールが Word にエクスポートされます。