我有一些内容需要在浏览器中呈现为excel文件。我能够使用以下代码渲染网格内容。
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite =
new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
htmlWrite.Write(stringWrite);
Response.Write(stringWrite.ToString());
Response.End();
现在我必须为图像做类似的事情。也就是说,我想要一个可以渲染图像的代码。
我的意思是当用户打开excel时,他应该能够看到其中的图像。
是否可以将图像转换为base64sting格式并将其放入excel?
如果您有任何类似的想法,请告诉我。
由于 Vinod T。
答案 0 :(得分:2)
我一直在使用相同类型的黑客技术将网格数据(带有html标记)转换为excel。
如果是您在那里写的HTML数据,只需将< IMG SRC =“MYFILENAME.JPG>添加到您想要图像的HTML文本中。
将会发生什么,Excel将询问您的服务器(asp.net应用程序)该文件。
您可能需要添加图像的完整路径 < IMG SRC =“http://myserver/subpath/MYFILENAME.JPG>
使用数据包嗅探器,我已经确认Excel中的内容会要求提供IMG文件,因此请确保已准备好下载映像。 (作为asp.net流)或物理上。
我的测试HTML。
< HTML>
<表>
< TR>< TD>试验< / TD>< TD>试验< / TD< TD>试验< / TD>< / TR>
< TR>< TD>试验< / TD>< TD>试验< / TD>< TD>试验< / TD>< / TR>
< TR>< TD>试验< / TD>< TD>试验< / TD>< TD>< IMG
SRC = “HTTP://myserver/LALLAALLAA.jpg” >< / TD>< / TR>
< /表>
< / HTML>
如果只有图像,它只与完全没有表格标签相同。只是HTML和IMG标签。
答案 1 :(得分:0)
喔。另一种更复杂的方法是创建.MHT文件(webarchive)文件。它包含嵌入在同一文件中的HTML和图像。 这样你只有一个流出来。但我不知道Excel是否会识别MHT内容并显示它。
答案 2 :(得分:0)
Office 2007文档(Word,PowerPoint和Excel)基于OpenXML格式。它们只是zip文件,里面有一堆XML和二进制部分(如图像)。您可以使用Framework中的任何XML类创建它们,然后将这些部分与Packaging API(WindowsBase.dll中的System.IO.Packaging)放在一起。
查看OpenXMLDeveloper.org了解详情。
答案 3 :(得分:0)
看看http://www.codeplex.com/OpenXMLViewer。也许这可以帮到你。
答案 4 :(得分:0)
我将此库用于xls-output: CarlogAG Excel Writer