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にエクスポートする」をクリックすると…

 

サンプル

 

ヘルプドキュメント

製品について

Ultimate UI for Windows Forms