0

我使用 MS Chart Controls 在我的 Web 应用程序 (.Net 4.0) 中生成了一个图表。我的要求是将特定图表作为图像导出到 Excel 文件中。我已经编写了下面提到的代码,试图将图表图像作为字节数组写入 excel 文件。但它导致我的 excel 文件中出现了一些未知字符。(字节数组可能已直接写入文件)。

byte[] bytes2;
    using (var chartimage = new MemoryStream())
    {
        Chart1.SaveImage(chartimage, ChartImageFormat.Png);
        bytes2 = chartimage.GetBuffer();
    }

    Response.Clear();
    Response.ContentType = "application/ms-excel";
    Response.AddHeader("content-disposition", "attachment; filename=StudentResults.xls");
    Response.BinaryWrite(bytes2);

    Response.End();

你们中的任何人都可以帮我以正确的方式将此图表写入excel文件吗?(不使用字节数组也可以)谢谢

4

1 回答 1

0

我能够找到实现它的正确方法;将 ms 图表(ms 图表控件)导出为 excel 作为图像。我很高兴在这里分享它。正确的源代码示例如下。

string tmpChartName = "test2.jpg";
    string imgPath = HttpContext.Current.Request.PhysicalApplicationPath + tmpChartName;

    Chart1.SaveImage(imgPath);
    string imgPath2 = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/" + tmpChartName);

    Response.Clear();
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("Content-Disposition", "attachment; filename=test.xls;");
    StringWriter stringWrite = new StringWriter();
    HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    string headerTable = @"<Table><tr><td><img src='" + imgPath2 + @"' \></td></tr></Table>";
    Response.Write(headerTable);
    Response.Write(stringWrite.ToString());
    Response.End();

谢谢 :)

于 2012-05-16T12:03:39.327 回答