嵌入图像以响应Excel打开

时间:2011-03-10 21:36:53

标签: c#

我创建了一个HTML表格,其中的图像跨越了几个单元格(第一部分),然后尝试将该图像导出为ex​​cel(第二部分(ExportReport方法))。我目前有两行显示图像,两者都可以在HTML表格中正常工作。注释掉的部分在导出到Excel时显示为红色X,未注释的输出行在Excel中显示图像,但图像是浮动的而不是粘合到Excel单元格中。

我想知道我缺少的是为了让图像在Excel导出中显示,同时将图像粘贴在单元格中(无法将其全部拖到报表上。)

//Create Table
Table tbl = new Table();
TableRow tr;
TableCell tc;

tc = new TableCell();
tr = new TableRow();
//tc.Text = "<center><imj src=\"images/logo_PROD.gif\" alt=\"Logo\" /></center>";
tc.Text = "<center><imj src=\"http://chwf1/portalsite/images/logo_PROD.gif\" alt=\"Logo\" /></center>";
tc.ColumnSpan = 3;
tr.Cells.Add(tc);
tbl.Rows.Add(tr);

//Export Table

public static void ExportReport(string fileName, Table table)
    {
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AddHeader(
            "content-disposition", string.Format("attachment; filename={0}", fileName));
        HttpContext.Current.Response.ContentType = "application/ms-excel";

        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter htw = new HtmlTextWriter(sw))
            {
                table.RenderControl(htw);
                HttpContext.Current.Response.Write(sw.ToString());
                HttpContext.Current.Response.End();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

你可以用Excel Automation [1]做到这一点,或者你可以尝试第三方组件,比如Aspose(他们在托管代码中处理它而不使用Excel,我猜)或者你可以从你的HTML中删除图像代码。

[1] http://www.eggheadcafe.com/community/aspnet/2/8506/how-to-insert-a-picture-into-excel-using-c.aspx

你试过搜索SO吗?因为有很多这样的问题,只需查看相关问题