Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Creare un File Excel

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339

    Creare un File Excel

    Ciao a tutti , allora vorrei fare un esportazione il risultato di un Dataset in Excel

    Ho guardato un po in internet ma ho visto delle cose forse un po troppo complicate.
    Cercavo se c'era qualcosa di semplice
    Io devo solo Cliccare su un pulsante fare esportazione del mio dataset.

    Mi potete dare qualche dritta?
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    In questo forum ci sono parecchi esempi, prova a cercare

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    ho già guardato altrimenti nn chiedevo
    SOlo che non trovato niente per un dataset.
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    credo che il modo migliore sia associare il dataset ad un datagrid o gridview ed esportare questi in excel;

    il metodo di scrivere cella per cella ciclando nel dataset è sconsigliato, la creazione del file excel (almeno a me) non funzionava bene, creava tante istanze e tanti fogli excel.

    prova a guardare qui:
    http://aspnetway.com/blogs/aspnetway..._DataGrid.aspx

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Ciao a tutti ho messo un pulsante che apre un popUp dentro la quale creo un datagrid
    e poi faccio questo.


    // dgCourseStudent = this._controller.GetFindCourseUserExcelDataSet();
    dgCourseStudent.DataSource = this._controller.GetFindCourseUserExcelDataSet();
    dgCourseStudent.DataBind();

    //Creo il File XLS
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=CourseUser.xls");
    Response.Charset = string.Empty;
    Response.Cache.SetCacheability(HttpCacheability.No Cache);
    Response.ContentType = "application/CourseUser.xls";

    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    dgCourseStudent.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();


    Però mi esce questo errore

    "internet Explorer cannot dowloand CourseUserExportExecl.asp From Nomesito
    Internet Explorer wqs not able to open this Internet site. The requested site is eithe unavailabel or cannot be fount. Please Tye Again later.


    Cosa può essere?
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    mmm
    questa riga non mi quadra: Response.ContentType = "application/CourseUser.xls";

    prova a sostituirla con "Application/Octect-Stream"


    inoltre setta anche l' header Content-Length al numero di byte dell' excel
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  7. #7
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    Mi è capitato recentemente un problema simile e ho risolto così:

    //creo il file. Ilf ile viene creato sul server. Poi ti preoccupi di elimanrlo
    string sPathFile = oUserControl.Server.MapPath(oUserControl.Request.A pplicationPath) + "\\" + m_sFileName;

    FileInfo oFileInfo = new FileInfo(sPathFile);
    if (oFileInfo.Exists)
    {
    oFileInfo.IsReadOnly = false;
    oFileInfo.Delete();
    }


    //build the connection string
    //N.B. l'apertura della stringa di connessione genera il file EXCEL

    string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source= " + sPathFile + ";Extended Properties=\"Excel 8.0;\"";

    //costruisco gli elementi per l'inserimento
    DbProviderFactory oFactory = DbProviderFactories.GetFactory("System.Data.OleDb" );
    DbConnection oConnection = oFactory.CreateConnection();
    DbCommand oCommand = oConnection.CreateCommand();

    //creo la tabella per la lista oggetti
    La funzione create table command contiene la query per creare una tabella -> foglio del file excel

    string sInsertQuery = CreateTableCommand(aoPropertiesSelected[0].Book, aoPropertiesSelected);
    oCommand.CommandText = sInsertQuery;
    if (oConnection.State == ConnectionState.Closed)
    oConnection.Open();
    oCommand.ExecuteNonQuery();
    oConnection.Close();


    //fai l'inserimento per ogni riga della tua DataTable
    codice tuo di inserimento


    //quando ho finito chiudo la connessione
    oConnection.Close();

    //lo faccio salvare all'utente. Ti apre il prompt di save
    oUserControl.Response.Clear();
    oUserControl.Response.Buffer = true;
    oUserControl.Response.ContentType = "application/vnd.ms-excel";
    oUserControl.Response.Charset = "";
    oUserControl.Response.AppendHeader("Content-Disposition", "attachment; filename=" + m_sFileName);
    oUserControl.Response.TransmitFile(sPathFile);
    oUserControl.Response.End();


    se il dataset ha più datable ti direi di creare tante tabelle( leggi folgi) tante quante sono le datatable.

    Ciao.

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.