Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Esportazione dei dati di una gridview paginata in excel

    Salve,
    sono un neofita della programmazione ed ho un problema, dovendo esportare in un file excel il contenuto di una gridview paginata ho scritto il seguente codice in c#:

    protected void Button1_Click(object sender, EventArgs e)
    {

    Response.Clear();
    Response.ContentType = "application/ms-excel";
    Response.AddHeader("content-disposition", "inline;filename=datra.xls");

    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

    this.GridView1.RenderControl(htmlWrite);


    Response.Write(stringWrite.ToString());
    Response.End(); }

    public override void VerifyRenderingInServerForm (Control control) {

    }

    il programma così funziona, però copia in excel solo i dati della pagina selezionata tralasciando tutti gli altri

    se qualcuno è in grado di aiutarmi... Grazie!

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    disabilita momentaneamente la paginazione e poi la riattivi all'ultimo.

  3. #3
    Ciao ti conviene scorrere gli elemti del gridview e scrivere ciascuna riga gel foglio excel/csv. Io ho risolto il problema in questo modo leggento i dati da un datagrid.

  4. #4
    Grazie per le risposte, comunque:

    Originariamente inviato da cassano
    disabilita momentaneamente la paginazione e poi la riattivi all'ultimo.
    ci ho già provato a mettere allowpaging=false, ma a quanto pare il risultato non cambia...

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Puoi postare il codice ... in che momento disabiliti la paginazione ???.

  6. #6
    Originariamente inviato da cassano
    Puoi postare il codice ... in che momento disabiliti la paginazione ???.
    Eccolo:

    protected void Button1_Click(object sender, EventArgs e)
    {

    Response.Clear();
    Response.ContentType = "application/ms-excel";
    Response.AddHeader("content-disposition", "inline;filename=datra.xls");

    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    this.GridView1.AllowPaging = false;

    this.GridView1.RenderControl(htmlWrite); //htmlWrite scrive


    Response.Write(stringWrite.ToString());
    Response.End(); }

    public override void VerifyRenderingInServerForm (Control control) {

    }

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    allora prova a disabilitare la paginazione e rifare il databind....

    e dai un occhiata Qui

  8. #8
    Grazie per le risposte e per il link cassano, comunque sono riuscito ad esportare tutti i dati al completo in Excel seguendo un'altra strada, questa per la precisione:

    protected void Button1_Click(object sender, EventArgs e)
    {
    string conn = ConfigurationManager.AppSettings["ConnectionString"];
    OracleConnection connessione = new OracleConnection(conn);
    String comm = ViewState["query"].ToString();
    OracleDataAdapter command = new OracleDataAdapter(comm, connessione);
    DataSet dataset = new DataSet();
    command.Fill(dataset);
    connessione.Close();
    if (dataset.Tables[0].Rows.Count > 0)
    {
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=File.xls");
    Response.Charset = string.Empty;
    Response.Cache.SetCacheability(HttpCacheability.No Cache);
    Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<table>");
    foreach (DataRow r in dataset.Tables[0].Rows)
    {
    sb.Append("<tr>");
    foreach (DataColumn col in dataset.Tables[0].Columns)
    sb.Append("<td>" + r[col].ToString() + "</td>");
    sb.Append("</tr>");
    }
    sb.Append("</table>");
    htmlWrite.Write(sb);
    Response.Write(stringWrite.ToString());
    Response.End();
    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.