我的页面包含2个gridview和2个mschart。 ı想要将此页面导出为excel。为此,我将这些控件放到一个面板中并编写了这段代码:
Response.Clear();
Response.ContentType = "application/vnd.msexcel";
Response.AddHeader("content-disposition", "attachment; filename=rapor.xls");
Response.ContentEncoding = System.Text.Encoding.Default;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
panel1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
当这段代码运行时,除了图表外,一切都很好。他们不会出类拔萃。我该怎么办?
答案 0 :(得分:1)
不是100%肯定,但我猜这些图表被写入内存以显示在页面上,因此它们会在请求后消失。
HTML不允许将图像嵌入代码中,您必须引用外部文件。
选项:
答案 1 :(得分:0)
尝试以下代码。我在local IIS
进行了测试,它运行正常,并在网格数据之上包含Header Image/Logo
之类的图像。你必须将你的图表包括为图像。
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=test.xls;");
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
dgrExport.DataSource = dtExport;
dgrExport.DataBind();
dgrExport.RenderControl(htmlWrite);
string headerTable = @"<Table><tr><td><img src=""D:\\Folder\\1.jpg"" \></td></tr></Table>";
Response.Write(headerTable);
Response.Write(stringWrite.ToString());
Response.End();
您可以根据自己的要求调整图像的高度和宽度。 <TD>
标记需要相同的高度和宽度设置。