Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将MS图表控件导出到Excel_C#_Excel_Export To Excel_Mschart - Fatal编程技术网

C# 如何将MS图表控件导出到Excel

C# 如何将MS图表控件导出到Excel,c#,excel,export-to-excel,mschart,C#,Excel,Export To Excel,Mschart,我使用MS图表控件在web应用程序(.Net 4.0)中生成了一个图表。我的要求是将特定图表作为图像导出到Excel文件中。我已经编写了下面提到的代码,试图将图表图像作为字节数组写入excel文件。但它在我的excel文件中产生了一些未知字符。(字节数组可能已直接写入文件) 你们谁能帮我把这个图表以正确的方式写进excel文件吗?(不使用字节数组也可以) 谢谢我找到了正确的实施方法;将ms图表(ms图表控件)作为图像导出到excel。我很高兴在这里与大家分享。正确的源代码示例如下所示 strin

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

你们谁能帮我把这个图表以正确的方式写进excel文件吗?(不使用字节数组也可以)
谢谢

我找到了正确的实施方法;将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();
string tmpChartName=“test2.jpg”;
字符串imgPath=HttpContext.Current.Request.PhysicalApplicationPath+tmpChartName;
图表1.保存图像(imgPath);
字符串imgPath2=Request.Url.GetLeftPart(UriPartial.Authority)+virtualPath.ToAbsolute(“~/”+tmpChartName);
Response.Clear();
Response.ContentType=“application/vnd.ms excel”;
AddHeader(“内容处置”、“附件;文件名=test.xls;”);
StringWriter stringWrite=新建StringWriter();
HtmlTextWriter htmlWrite=新的HtmlTextWriter(stringWrite);
字符串headerTable=@“”;
响应。写入(headerTable);
Response.Write(stringWrite.ToString());
Response.End();

谢谢:)

您必须首先实际创建电子表格,而不是试图将图像保存为.XLS!试试@Rup——非常感谢您的快速响应和建议。我很高兴地说,我已经找到了正确实施它的方法。我将分享我的源代码,这样每个人都可以知道它。再次感谢您,这仍然不是一个真正的Excel文件-您现在以.XLS格式而不是实际的.XLS格式发出HTML。而且您的解决方案不支持多个并发用户:如果您打算采用这种方式,最好让另一个控制器生成并返回映像,然后让该控制器生成指向该映像的URL。然而,我仍然认为您应该创建一个真正的XLS文件,而不是HTML。@Rup-非常感谢您的想法。我会考虑这个问题,以便想出一个更好的解决办法。
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();