【问题标题】:remove images while exporting excel from gridview从gridview导出excel时删除图像
【发布时间】:2013-11-08 12:07:20
【问题描述】:

我正在从 gridview 导出 excel,但它没有给我很好的格式。图像显示在 excel 文件中。我不想要这些图片,我该怎么办?

这是我的代码

protected void Export_to_Excel(object sender, EventArgs e)
{
   //System.Diagnostics.Debugger.Break();
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=vault-extract-nsf.xls");
    Response.ContentType = "application/vnd.xlsx";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    GridView1.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();
}

【问题讨论】:

  • 你可以在写响应之前替换render html中的image标签。
  • 您可以隐藏带有图像的列。
  • 如何替换或隐藏?

标签: c# asp.net excel gridview


【解决方案1】:

我做到了,图像被忽略了。

protected void Export_to_Excel(object sender, EventArgs e)
    {
        //System.Diagnostics.Debugger.Break();
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=PatientSearchReport.xls");
        Response.ContentType = "application/vnd.xlsx";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);  
        GridView1.RenderControl(htmlWrite);
        string html2 = Regex.Replace(stringWrite.ToString(), @"(<input type=""image""\/?[^>]+>)", @"", RegexOptions.IgnoreCase);
        html2 = Regex.Replace(html2, @"(<input class=""checkbox""\/?[^>]+>)", @"", RegexOptions.IgnoreCase);
        html2 = Regex.Replace(html2, @"(<a \/?[^>]+>)", @"", RegexOptions.IgnoreCase);
        Response.Write(html2.ToString());
        Response.End();
    }

【讨论】:

    【解决方案2】:

    你可以这样做

     protected void Export_to_Excel(object sender, EventArgs e)
     {
    
    GridView tmpGrid = new GridView();
    // here bind this grid with same datasource which you have used for GridView1 
    
    //System.Diagnostics.Debugger.Break();
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=vault-extract-nsf.xls");
    Response.ContentType = "application/vnd.xlsx";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    tmpGrid.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();
    }
    

    【讨论】:

    • 查看我的答案,我写的代码和图像已被删除。谢谢你的关心:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多