从浏览器渲染Excel

时间:2008-11-14 14:50:42

标签: asp.net vb.net excel

我有一些内容需要在浏览器中呈现为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。

5 个答案:

答案 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