首页 > 解决方案 > Excel文件导出没有任何错误

问题描述

我试图从我的数据访问层导出我的数据,但什么也没发生,没有错误,也没有导出。很难知道出了什么问题,因为没有错误

我试过这个:

     if (dt.Rows.Count > 0){
          dgv.DataSource = dt;
         dgv.DataBind();

         Response.ClearContent();
         Response.AppendHeader("content-disposition","attachement;filename=transaction.xls");
         Response.ContentType = "application/excel";
         StringWriter stringWritter = new StringWriter();
         HtmlTextWriter htmlTextWritter = new HtmlTextWriter(stringWritter);

        dgv.RenderControl(htmlTextWritter);
        Response.Write(stringWritter.ToString());

        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.SuppressContent = true;
        HttpContext.Current.ApplicationInstance.CompleteRequest();

但什么也没发生。

我已经尝试过了,但也没有:

         StringWriter osStringWritter = new StringWriter();
         Html32TextWriter osHtmlTextWritter = new Html32TextWriter(osStringWritter);
         DataTable dt = new DataTable();
         DataGrid dgv = new DataGrid();            

         Response.Clear();
         Response.Buffer = false;
         Response.ContentType = "application/vnd.ms-excel";
         Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", "TransactionReport"));
         Response.Charset = "";

         dgv.DataSource = dt;
         dgv.DataBind();

         dgv.RenderControl(osHtmlTextWritter);
         Response.Write("Report Datw:" + DateTime.Now);
         Response.Write(osStringWritter.ToString());
         //Response.End();
         HttpContext.Current.Response.Flush();
         HttpContext.Current.Response.SuppressContent = true;
         HttpContext.Current.ApplicationInstance.CompleteRequest();

        dgv = null;
        osStringWritter = null;
        osHtmlTextWritter = null;

我做错了什么?

标签: c#htmlasp.netexcelweb

解决方案


试试这个可能会解决您的问题

dgv.DataSource = dt;
        dgv.DataBind();
        Response.ClearContent();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename = Export to Excel.xls");
        Response.ContentType = "application/ms-excel";
        Response.Charset = "";
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter htw = new HtmlTextWriter(sw))
            {
                dgv.RenderControl(htw);
                Response.Output.Write(sw.ToString());
                Response.Flush();
                Response.End();
            }
        }

推荐阅读