UltraChartにはSaveToメソッドでグラフの内容を画像として保存する機能があります。また、インフラジスティックスのExcelライブラリーには、保存した画像をExcelのワークシートに貼り付ける機能があります。これらを組み合わせることで、UltraChartの画像をExcelに出力することが可能です。
using (MemoryStream memoryStream = new MemoryStream()) { // UltraChartのグラフをStreamに保存する。 ultraChart1.SaveTo(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); // Excelワークブックとワークシートを作成する。 Workbook workbook = new Workbook(); workbook.SetCurrentFormat(WorkbookFormat.Excel2007); Worksheet worksheet = workbook.Worksheets.Add("Sheet1"); // Streamから画像オブジェクトを作成する。 Image image = Image.FromStream(memoryStream); // 画像オブジェクトからWorksheetImageオブジェクトを作成する。 WorksheetImage imageShape = new WorksheetImage(image); // 貼り付け範囲用として使うセルを取得する。 WorksheetCell cell1 = worksheet.GetCell("A1"); WorksheetCell cell2 = worksheet.GetCell("J24"); // 画像の左上隅をcell1(A1)の左上隅に設定する。 imageShape.TopLeftCornerCell = cell1; imageShape.TopLeftCornerPosition = new PointF(0.0F, 0.0F); // 画像の右下隅はをcell2(J24)の右下隅に設定する。 imageShape.BottomRightCornerCell = cell2; imageShape.BottomRightCornerPosition = new PointF(100.0F, 100.0F); // 画像を追加する。 worksheet.Shapes.Add(imageShape); // Excelワークブックを保存する。 workbook.Save("ExportedBook1.xlsx"); MessageBox.Show("完了しました"); }
実行結果
アプリケーション起動時のフォーム
「Excelにエクスポートする」をクリックすると…
サンプル
ヘルプドキュメント
- 「チャート画像の保存」
- 「画像をワークシートに追加」