XamWebGrid で Excel のエクスポート チュートリアル

0 ユーザーが評価
この投稿には確認済みの回答があります。 0 返信 | 1 サポーター

トップ 10 投稿者 
女性
投稿 22
IG Employee

このチュートリアルは、NetAdvantage Silverlight の XamWebGrid Excel エクスポートの使用方法を紹介します。

 

このチュートリアルでは、データバインドしたグリッドを Excel ファイルへエクスポートする方法を紹介します。馴染みがあるファイル形式でデータを共有する機能です。しかも、Excel への依存がありません。つまり、この機能を使用するために、Microsoft Excel をインストールする必要はありません。

以下の例では、XML ファイルにバインドした XamWebGrid Excel (.xls) ファイルへエクスポートします。1 つの Worksheet を含む Workbook を作成し、その Worksheet XamWebGrid のデータを移植します。また、Workbook オブジェクトの Save メソッドは Excel ファイルを作成して保存します。

1. Movies.xml にバインドされる XamWebGrid を作成します。詳細については、「XamWebGrid のデータバインディング」チュートリアルを参照してください。このトピックの手順を実行するにはバインドされる XamWebGrid が必要です。

2. ソリューション エクスプローラーの参照設定フォルダーに Excel アセンブリへの参照を追加します。

3. MainPage.xaml.cs ファイルの上に名前空間宣言を追加します。

using System.Xml;

using System.IO;

using System.Collections.ObjectModel;

using Infragistics.Silverlight.Excel; // Excel アセンブリへの参照が必要です

using Infragistics.Silverlight.Controls; // XamWebGrid アセンブリが使用可能になります 

4.     MainPage.xaml ファイルでは、データバインディングのトピックで作成した myXamWebGrid Height プロパティを 550Width プロパティを 350 に設定します。

<igGrid:XamWebGrid Name="myXamWebGrid" AutoGenerateColumns="True" Height="550" Width="350" > </igGrid:XamWebGrid>

5.     myXamWebGrid の周囲に StackPanel を追加します。

<StackPanel>

<igGrid:XamWebGrid Name="myXamWebGrid" AutoGenerateColumns="True" Height="550" Width="350" > </igGrid:XamWebGrid>

</StackPanel> 

 

6.     XamWebGrid の下に Button を追加します。StackPanel を使用すると、XamWebGrid Button は垂直に配置されます。Button Content プロパティを「Excel へエクスポート」、Click プロパティを「TestExcel_Click」、Width プロパティを XamWebGrid と同じように設定します。Content Button で表示されるテキストを設定します。Click プロパティは Button がクリックされるときに発生するイベントを設定します。

<StackPanel>

<igGrid:XamWebGrid Name="myXamWebGrid" AutoGenerateColumns="True" Height="550" Width="350" > </igGrid:XamWebGrid>

<Button Content="Export へエクスポート" Click="TestExcel_Click" Width="350"  />

</StackPanel>

7.     MainPage.xaml.cs ファイルでは、SetCellValue メソッドを作成します。Excel ファイルのセルのデータを設定するために使用します。

private void SetCellValue(WorksheetCell cell, object value)

{

  cell.Value = value;

  cell.CellFormat.ShrinkToFit = ExcelDefaultableBoolean.True;

  cell.CellFormat.VerticalAlignment = VerticalCellAlignment.Center;

  cell.CellFormat.Alignment = HorizontalCellAlignment.Center;

}

 

8.     SaveExport メソッドを作成します。ユーザーが保存位置とファイル名を選択して、データをエクスポートしてファイルを保存します。

private void SaveExport(Workbook dataWorkbook)

{

  SaveFileDialog dialog = new SaveFileDialog { Filter = "Excel ファイル|*.xls", DefaultExt = "xls" };

 

  bool? showDialog = dialog.ShowDialog();

  if (showDialog == true)

  {

    using (Stream exportStream = dialog.OpenFile())

    {

      dataWorkbook.Save(exportStream);

      exportStream.Close();

    }

  }

}

 

9.     TestExcel_Click イベントを作成します。このイベントは 1 つの Worksheet を持つ Workbook を作成します。ユーザーがスクロールしても列の情報を常に表示するために、ヘッダー行が固定されます。列のヘッダーは Worksheet で設定されます。データが XamWebGrid から Worksheet にコピーされます。Excel ファイルを作成するために保存ダイアログが表示されます。

private void TestExcel_Click(object sender, RoutedEventArgs e)

{

  Workbook dataWorkbook = new Workbook();

  Worksheet sheetOne = dataWorkbook.Worksheets.Add("データ シート");

 

  // ヘッダー行を固定する

  sheetOne.DisplayOptions.PanesAreFrozen = true;

  sheetOne.DisplayOptions.FrozenPaneSettings.FrozenRows = 1;

 

  // 列リストを作成する

  sheetOne.DefaultColumnWidth = 5000;

  int currentColumn = 0;

  foreach (Column column in this.myXamWebGrid.Columns)

  {

    if (column.Visibility == Visibility.Visible)

    {

      this.SetCellValue(sheetOne.Rows[0].Cells[currentColumn], column.Key);

      currentColumn++;

    }

  }

 

  // グリッドのデータをエクスポートする

  int currentRow = 1;

  foreach (Row row in this.myXamWebGrid.Rows)

  {

    int currentCell = 0;

    foreach (Cell cell in row.Cells)

    {

      if (cell.Column.Visibility == Visibility.Visible)

      {

        this.SetCellValue(sheetOne.Rows[currentRow].Cells[currentCell], cell.Value);

        currentCell++;

      }

    }

    currentRow++;

  }

 

  this.SaveExport(dataWorkbook);

} 

 

10.  プロジェクトを保存して実行します。Movies.xml ファイルを XamWebGrid で表示できることを確認してください。このデータバインディングがない場合、XamWebGrid のデータ バインディング トピックを参照してください。「Excel へエクスポート」ボタンをクリックしてください。保存ダイアログでは、場所とファイル名を選択します。指定しない場合、デフォルトで「.xls拡張子が使用されます。

11.  Web サイトを閉じます。保存位置で Excel ファイルを開きます。エクスポートを確認してください。

 


ページ 1 / 1 (1 項目) | RSS
Infragistics Japan
インフラジスティックス ジャパン