簡體   English   中英

使用asp.net導出到Excel

[英]Export to excel using asp.net

我正在使用以下功能將數據導出到Excel工作表:

string filename = "Test.xls"; 
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

//Get the H`enter code here`TML for the control.
yourGrid.RenderControl(hw);
//Write the HTML back to the browser.
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");

    Response.Write(tw.ToString());

但未創建Excel工作表。 盡管它在chrome瀏覽器底部顯示excel正在下載。 下載完成后,我單擊它,並說無法打開文件。 請建議我這是什么問題?

[編輯]

 Response.Clear();
 Response.Buffer = true;
 //use Response.AddHeader
 Response.AddHeader("content-disposition", "attachment;filename=Test.xlsx");
 Response.Charset = "";
 Response.ContentType = "application/vnd.ms-excel";
 StringWriter sw = new StringWriter();
 HtmlTextWriter hw = new HtmlTextWriter(sw);
 gvLogs.RenderControl(hw);
 gvLogs.AllowPaging = false;
 gvLogs.DataBind(); // bind data 
 Response.Output.Write(sw.ToString());
 //need to call Flush and End methods 
 Response.Flush();
 Response.End();

給出相同的錯誤

檢查下面的代碼

Response.Clear();
Response.Buffer = true;
//use Response.AddHeader
Response.AddHeader("content-disposition", "attachment;filename=Test.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.RenderControl(hw);
GridView1.AllowPaging = false;
GridView1.DataBind(); // bind data 
Response.Output.Write(sw.ToString());
//need to call Flush and End methods 
Response.Flush();
Response.End();

Epplus是一個很好的Excel導入/導出庫。 您可以簽出。

你可以試試這個

 private void ExportToExcel(DataTable dt)
    {
        if (dt.Rows.Count > 0)
        {
            string filename = "DownloadReport.xls";
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
            DataGrid dgGrid = new DataGrid();
            dgGrid.DataSource = dt;
            dgGrid.DataBind();

            //Get the HTML for the control.
            dgGrid.RenderControl(hw);
            //Write the HTML back to the browser.
            Response.ContentType = "application/vnd.ms-excel";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
            this.EnableViewState = false;
            Response.Write(tw.ToString());
            Response.End();
        }
    }

如下所示在代碼中更改“ Response.ContentType ”值。

Response.ContentType = "application/vnd.xls";

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM