2017-03-10 10 views
0

私はGridviewのページがあります。ボタンをクリックすると、Gridviewから.xlsにデータをエクスポートする必要があります。私は多くの点でそれを試してきました。これは私のコードです:ASP.NET Gridview to exc

protected void export_Click(object sender, EventArgs e) 
    { 
     Response.ClearContent(); 
     //Response.Buffer = true; 
     //Response.ClearHeaders(); 
     //Response.CacheControl = "no-cache"; 
     //Response.AddHeader("Pragma", "no-cache"); 
     Response.AddHeader("Content-Disposion","attachment; filename=Clients.xls"); 
     Response.ContentType = "application/excel"; 
     StringWriter swriter = new StringWriter(); 
     HtmlTextWriter hwriter = new HtmlTextWriter(swriter); 
     grid.RenderControl(hwriter); 
     Response.Write(swriter.ToString()); 
     Response.End(); 
    } 

私はそれがaspxファイルをエクスポートしているボタンをクリックしたときに問題があります。私はすべての答えをStackoverflowと他のソースからも試しました。しかし、私はそれを訂正することができません。それはいくつかの可能な解決策ので、なぜ私は正確な理由を必要としています。(私も"application/excel""application/vn""application/vn-excel"としてContent-typeを試してみました。)

+0

ここで完全なコード:https://www.codeproject.com/tips/477436/export-gridview-data-to-excel-in-asp-net –

答えて

0

あなただけ...それが正常に動作している、次のコードに従うことができる

protected void cmdExport_Click(object sender, EventArgs e) 
{ 
    Response.Clear(); 
    Response.AddHeader("content-disposition", "attachment; filename=SupplierList.xls"); 
    Response.ContentType = "application/vnd.xls"; 
    System.IO.StringWriter WriteItem = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter htmlText = new HtmlTextWriter(WriteItem); 
    GridView1.AllowPaging = false; 
    DataTable dtSupplier = (DataTable)ViewState["dtSupplier"]; 
    GridView1.DataSource = dtSupplier; 
    GridView1.DataBind(); 
    GridView1.RenderControl(htmlText); 
    Response.Write(WriteItem.ToString()); 
    Response.End(); 
} 

希望すると、これが役立ちます。 ありがとう

+0

ありがとう。私は2日間それを検索しています。なぜ私のコードが動作していないのですか?あなたはそれについて知りませんか? –