2013-08-05 56 views
3

我使用波紋管代碼導出gridview數據,但問題在於整個頁面導出爲ex​​cel。 我只想要gridview數據不是整個頁面導出。如何解決這個問題?將Gridview數據導出到ASP.NET Linq數據綁定

HtmlForm form = new HtmlForm(); 
Response.Clear(); 
Response.Buffer = true; 
string filename = "GridViewExport_" + DateTime.Now.ToString() + ".xls"; 

Response.AddHeader("content-disposition", "attachment;filename=" + filename); 
Response.Charset = ""; 
Response.ContentType = "application/vnd.ms-excel"; 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
gdvInBox.AllowPaging = false; 
gdvInBox.DataBind(); 
form.Controls.Add(gdvInBox); 
this.Controls.Add(form); 
form.RenderControl(hw); 

//style to format numbers to string 
string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 
Response.Write(style); 
Response.Output.Write(sw.ToString()); 
Response.Flush(); 
Response.End(); 

在此先感謝。

回答

7

設置只導出gridview的excel導出非常簡單。這已經過測試,只會導出出現在給定網頁上的gridview。

對於你的C#代碼中使用下列內容:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class vxcel_export : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void Button2_Click(object sender, EventArgs e) 
    { 
     Response.Clear(); 
     Response.AddHeader("content-disposition", "attachment;filename=file-name.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(); 
    }  

    public override void VerifyRenderingInServerForm(Control control) 
    { 
    } 
} 

在你的aspx代碼使用以下命令:

請務必在頁面的頂部添加EnableEventValidation="false"<%@Page %>代碼。

放置在您想要把按鈕,你的GridView導出到Excel下面的代碼:

<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Whatever you want your button to say" /> 

可以修改高度和寬度要在按鈕不論大小。

就是這樣。有一點要記住,當你導出文件時,它不是一個真正的excel文件,直到你將它保存爲工作簿/ Excel文件。

+0

你會如何做,從用戶控制這個東西的工作一樣嗎?您無法重寫VerifyRendering – BRogers

相關問題