2010-12-09 41 views
1

i construit un logiciel de gestion des patients pour une clinique et je dois exporter patiet liste de la vue de la grille ASP.net pour un fichier ExcelAjouter un « Exporter vers Excel » pour une page Web pour exporter gridview d'exceller dans webapplication

ma question est:

est-il un moyen d'exporter gridview d'exceller je suis en utilisant vb.net et développeur web visuel 2010

i stocker datasource de la page de recherche avancée en session et rediriger au résultat page ici est le code de la page résultat

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

Répondre

3

essayer ci-dessous le code sur le bouton cliquez sur

// 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

Ai-je besoin d'importer Microsoft espaces de noms interop? Je ne peux pas le trouver dans l'installation express de développeur web visuel !! –

0

vous devez d'abord ajouter ce qui suit à la directive de page pour éviter les erreurs d'exécution

EnableEventValidation ="false" 

ajouter GridView page ASPX la session "dsource" passe la source de données de la page de recherche avancée contenant la chaîne de connexion et sélectionnez la commande alors voici le code derrière


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

Et si c'était une partie web visuelle? – SearchForKnowledge