Indice del forum
 FAQ   Cerca   Lista utenti   Gruppi   Registrati   Profilo   Messaggi privati   Log in 
download file excel
Vai a 1, 2  Successivo
 
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript...
Precedente :: Successivo  

Autore

Messaggio

nuvola111
Novizio


Registrato: 10/01/08 15:12
Messaggi: 1

MessaggioInviato: Gio Gen 10, 2008 3:15 pm    Oggetto: download file excel

Rispondi citando


Ho anche io un problema simile....riesco a generare un file excel da una datatable, riesco a salvarmelo in locale, ma non riesco a poter far fare il download del file all'utente...forse dovrei salvare il file sul server e riprenderlo...

Aiuto!!!!!!!!!

grazie!!!

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Gen 11, 2008 10:11 am    Oggetto:

Rispondi citando


Ciao nuvola! Innanzitutto, che linguaggio usi? C# ASP.NET? Se si, puoi usare questo semplice codice:

Codice:

String strPath  = Server.MapPath("file.xls");
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/ms-excel";
Response.WriteFile(strPath);
Response.End();


Se invece usi VB, prova questo:

Codice:

Dim strPath as String = Server.MapPath("file.xls")
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/ms-excel"
Response.WriteFile(strPath)
Response.End()

_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Gio Nov 27, 2008 11:31 am    Oggetto:

Rispondi citando


salve, io invece utillzndo questo codice...vorrei sapere come fare a salvare il file sul disco del server..nn vorei farlo esportare. Grazie.

SetGridLayout(ref grid);

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + report + ".xls");
Response.Charset = "";
this.EnableViewState = false;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";

System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(Response.Output);


grid.DataSource = dr;
grid.DataBind();
grid.RenderControl(htmlWrite);
dr.Close();
Response.End();

grazie.

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Gio Nov 27, 2008 1:10 pm    Oggetto:

Rispondi citando


Ciao, questo pezzo di codice che hai messo usa la response, che quindi restituisce il file all'utente. Se non vuoi farlo aprire automaticamente all'utente devi usare una filestream.
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Gio Nov 27, 2008 1:12 pm    Oggetto:

Rispondi citando


bigrino ha scritto:
salve, io invece utillzndo questo codice...vorrei sapere come fare a salvare il file sul disco del server..nn vorei farlo esportare. Grazie.

SetGridLayout(ref grid);

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + report + ".xls");
Response.Charset = "";
this.EnableViewState = false;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";

System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(Response.Output);


grid.DataSource = dr;
grid.DataBind();
grid.RenderControl(htmlWrite);
dr.Close();
Response.End();

grazie.


Comunque, Response.ContentType = "application/vnd.xls"; cosa vuol dire?
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Ven Nov 28, 2008 8:46 am    Oggetto:

Rispondi citando


vuoel dire che il formato è in xls

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Nov 28, 2008 8:48 am    Oggetto:

Rispondi citando


Si ma credo che vada scritto così:

Codice:
Response.ContentType = "application/ms-excel";

_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Ven Nov 28, 2008 8:59 am    Oggetto:

Rispondi citando


cali1981
.....potresti essere più preciso devo togliere tutte le response? Shocked

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Nov 28, 2008 9:11 am    Oggetto:

Rispondi citando


Nno basta togliere il response, ma devi anche scrivere il file, servono altre classi, tipo:

myData è un array dy byte

// rileva il nome della directory e del file
string strPath = Server.MapPath("nome della driectory") + "nome del file";

// crea un nuovo file
FileStream newFile = new FileStream(strPath, FileMode.Create);

// scrivi il buffer di dati nel file
newFile.Write(myData, 0, myData.Length);

// chiude il file
newFile.Close();
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Ven Nov 28, 2008 9:34 am    Oggetto:

Rispondi citando


ok..provo grazie.

cmq per il momento questo nn mi ha mia dato problemi:

Response.ContentType = "application/vnd.xls";

posso asseganre il mio datareader all'array di byte...cioè a myData?

Io prioma asseganvo alla griglia il mio datareader:

grid.DataSource = dr;
grid.DataBind();
grid.RenderControl(htmlWrite);


Grazie.

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Nov 28, 2008 9:36 am    Oggetto:

Rispondi citando


Mmmm non credo si possa fare così direttamente...
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Ven Nov 28, 2008 9:40 am    Oggetto:

Rispondi citando


un'idea?

io ho questo datareader che vorrei salvare su disco.

Con quel codice che uso funziona....ma solo per far scaricare il file all'utente Crying or Very sad

grazie.

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Nov 28, 2008 9:50 am    Oggetto:

Rispondi citando


Una volta fatta l'istruzione rendercontrol, prova a mettere questo:

...


byte[] bytes = System.Text.Encoding.ASCII.GetBytes(htmlWrite.ToString());

// scrivi il buffer di dati nel file
newFile.Write(bytes, 0, bytes.Length);

// chiude il file
newFile.Close();

al posto di --- metti la aprte che ti ho fatto vedere prima sui files:

// rileva il nome della directory e del file
string strPath = Server.MapPath("nome della driectory") + "nome del file";

// crea un nuovo file
FileStream newFile = new FileStream(strPath, FileMode.Create);
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

bigrino
Bravino


Registrato: 27/11/08 11:29
Messaggi: 14

MessaggioInviato: Ven Nov 28, 2008 10:07 am    Oggetto:

Rispondi citando


nel file excel esce scritto questo:

System.Web.UI.HtmlTextWriter

forse sbagli io qualcosa Shocked

System.IO.FileStream newFile = new System.IO.FileStream(@"c:\sigic_stampe\rino1.xls", System.IO.FileMode.Create);



grid.DataSource = dr;
grid.DataBind();
grid.RenderControl(htmlWrite);

byte[] bytes = System.Text.Encoding.ASCII.GetBytes(htmlWrite.ToString());


newFile.Write(bytes, 0, bytes.Length);
newFile.Close();



dr.Close();
Response.End();

A parte che forse devo tolgoere qualcosa per nn farlo cmq aprire nel browser. Grazie

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Nov 28, 2008 10:13 am    Oggetto:

Rispondi citando


Dovresti far vedere più codice... anche la parte prima...
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript... Tutti i fusi orari sono GMT
Vai a 1, 2  Successivo
Pagina 1 di 2

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
Forum del sito TuttoMontefalco.it - Umbria - Italy topic RSS feed 


Torna al sito TuttoMontefalco.it


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it

SoftGreen 1.1 phpBB theme by DaTutorials.com
Copyright © DaTutorials 2005