GridView与从字节检索的图像

我想导出一个gridview表格为excel格式。
Math Berseth发现了最简单,最快速的解决scheme
http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html

这个解决scheme工作正常,被客户接受。 但现在,几个月后,一个新的function被要求:“只需在Excel中放置一个图像标志”

这吓我一跳 我不能把System.Drawing.Image放在一个System.Web.UI.WebControls.Image导致它们完全不同,但是我不能只是放一个Path导致生成的excel会通过电子邮件发送所以目录结构不能被考虑。

那么,我可以把从GridView的字节检索的图像导出到math模型中,还是以其他方式存在?

编辑..

我走了几步,但我仍然远离我的目标。 我可以使用String Base64在HTML文件中embedded图像

就像是:

private string MakeImageSrcData(string filename) { FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read); byte[] filebytes = new byte[fs.Length]; fs.Read(filebytes, 0, Convert.ToInt32(fs.Length)); return "data:image/png;base64," + Convert.ToBase64String(filebytes, Base64FormattingOptions.None); } 

 string base64 = MakeImageSrcData("D:\\Proj\\top_title.png"); TableRow tr = new TableRow(); TableCell tc = new TableCell(); Image logoEmpresa = new Image(); logoEmpresa.ImageUrl = base64; tc.Controls.Add(logoEmpresa); tr.Cells.Add(tc); table.Rows.Add(tr); 

这与IE和FF工作正常,但没有丝毫擅长:/

我尝试了电子表格XML,但是正如MSDN 在这里所描述的,不支持图像types。

一些其他的想法?

该方法通过输出gridview作为包含HTML表格的文本来工作。 我会想象你可以用一个string预先加上string,该string包含一个指向你的标志的地方的可访问的网站。

试一试。

评论

在引用的演示的GridViewExportUtil.cs文件的第61行之前添加了以下内容:

 HttpContext.Current.Response.Write("<img src='http://localhost/WebApplication2/wand.gif' />"); 

该图像在指定的URL处可用,并在Excel中正确显示。