2010-12-09 62 views
1

我建了一個病人管理軟件的診所所長,我需要出口從ASP.net網格視圖patiet列表,excel文件添加「導出到Excel」按鈕,網頁導出GridView控件在web應用

我的問題是:

是否有出口的GridView到Excel 我使用vb.net和Visual Web Developer 2010

我存儲從高級搜索頁的數據源到一個會話,然後重定向到這裏結果頁面 方式是結果代碼頁面

Partial Class Sresults 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    GridView1.DataSource = Session("dsource") 
    GridView1.DataBind() 

End Sub 

Protected Sub Backbtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Backbtn.Click 
    Session("dsource") = "" 
    Response.Redirect("searchme.aspx") 

End Sub 

Protected Sub Page_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete 
    Response.Write(GridView1.Rows.Count.ToString + " Records") 
End Sub 
End Class 
+2

http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html – Egor4eg 2010-12-09 11:27:25

回答

3

試試下面的按鈕代碼點擊

// Get DataTable that DataGrid is bound to. 
var dataTable = (DataTable)dataGrid.DataSource; 

// Create new ExcelFile. 
var ef = new ExcelFile(); 
// Add new worksheet to the file. 
var ws = ef.Worksheets.Add(dataTable.TableName); 
// Insert the data from DataTable to the worksheet starting at cell "A1". 
ws.InsertDataTable(dataTable, "A1", true); 

// Stream file to browser. 
Response.Clear(); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("Content-Disposition", "attachment; filename=Employee.xls"); 
ef.SaveXls(Response.OutputStream); 
Response.End(); 
+1

我需要導入微軟互操作的命名空間?我無法在視覺Web開發者快速安裝中找到它! – 2010-12-09 13:37:37

0

首先你要下添加到頁面指令來避免運行時錯誤

EnableEventValidation ="false" 

添加GridView控件的aspx頁面 會話「dsource」正在傳遞包含連接字符串的高級搜索頁面的數據源並選擇命令 那麼這裏就是落後


using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; 
using System.Threading; 
using System.IO; 
using System.Reflection; 

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

    gridview1.DataSource = Session["dsource"]; 
    gridview1.DataBind(); 




} 


    public override void VerifyRenderingInServerForm(Control control) 
{ 

} 



protected void Button2_Click(object sender, EventArgs e) 
{ 
    HtmlForm form = new HtmlForm(); 
    string attachment = "attachment; filename=Patients.xls"; 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", attachment); 
    Response.ContentType = "application/ms-excel"; 
    StringWriter stw = new StringWriter(); 
    HtmlTextWriter htextw = new HtmlTextWriter(stw); 
    form.Controls.Add(gridview1); 
    this.Controls.Add(form); 
    form.RenderControl(htextw); 
    Response.Write(stw.ToString()); 
    Response.End(); 
} 

代碼}

+0

如果它是一個可視化的Web部件呢? – SearchForKnowledge 2015-01-07 14:48:47