Ciao a tutti , nella mia pagina ASPX ho creato un table dinamica , con N colonne N Righe
dentro nelle quali ci sono dei valori.
Ora vorrei esportare questa tabella creata dinamicamente in un foglio XLS.
Come posso farE?
Ciao a tutti , nella mia pagina ASPX ho creato un table dinamica , con N colonne N Righe
dentro nelle quali ci sono dei valori.
Ora vorrei esportare questa tabella creata dinamicamente in un foglio XLS.
Come posso farE?
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.
ciao,
ti consiglio di usare gli oggetti di infragistics , in particolare UltraWebGridExcelExporter e Ultrawebgrid se vuoi sostituire la tabella dinamica che hai creato;
la sintassi per esportare è:
this.UltraWebGridExcelExporter1.Export(this.UltraW ebGrid1);
Più in dettaglio:
nella pagina .aspx basta che inserisci i due oggetti:
che ovviamente poi formatterai come meglio credi (paginazione, colore, grandezza...etc);codice:<igtblexp:UltraWebGridExcelExporter ID="UltraWebGridExcelExporter1" runat="server" OnBeginExport="UltraWebGridExcelExporter1_BeginExport" > </igtblexp:UltraWebGridExcelExporter> <igtbl:UltraWebGrid ID="UltraWebGrid1" runat="server" DisplayLayout-AllowRowNumberingDefault="Continuous" Height="313px" Width="669px"> </igtbl:UltraWebGrid>
in .aspx.cs invece devi usare il seguente codice (questo è in c# ma con un buon traduttore lo puoi trasformare facilemnte in VB)
Riempire UltraWebGrid (che sarebbe la tua tabella) nel pageload:
PER ESPORTARE invece crei un button e nell'evento ONCLICK inserisci:codice:{ DataSet DSet = new DataSet(); string Cnnstr = System.Configuration.ConfigurationSettings.AppSettings["CN1"].ToString(); bool ret = false ; ret = clsFunctions.LoadDataSetFromSqlStatement(Cnnstr, "SELECT * FROM utente ", "PROVA", ref DSet, true); if (ret == true) { if (DSet.Tables["PROVA"].Rows.Count > 0) { DSet.Tables["PROVA"].Rows[0]["cognome"].ToString(); DSet.Tables["PROVA"].Rows[0]["nome"].ToString(); DSet.Tables["PROVA"].Rows[0]["username"].ToString(); DSet.Tables["PROVA"].Rows[0]["password"].ToString(); DSet.Tables["PROVA"].Rows[0]["email"].ToString(); UltraWebGrid1.DataSource = DSet; UltraWebGrid1.DataBind(); } } else { Response.Write("Errore durante la connessione"); }
se non usi ultrawebgrid basta che inserisci l' ID della grid che usi al posto di "ultrawebgrid1", e ricordati che il codicecodice:UltraWebGrid1.DisplayLayout.Pager.AllowPaging = false; UltraWebGrid1.DataBind(); this.UltraWebGridExcelExporter1.Export(this.UltraWebGrid1);
serve solo se hai messo impostazioni di paginazione, se hai impostato la visualizzazionie su più pagine prima di esportare devi ricostruire la grid senza paginazione altrimenti esporterà solo i record della pagina in cui ti trovi.codice:UltraWebGrid1.DisplayLayout.Pager.AllowPaging = false; UltraWebGrid1.DataBind();
Spero di esserti stata di aiuto, se hai qlk domanda chiedi pure... ciao
Non posso cambiare la asp table che creo dinamicamente ora.
Posso usare lo stesso questo controllo anche con la mia table?
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.
non l'ho mai provato con la talbe.. ma penso sia la medesima cosa, al posto di UltraWebGrid1 potresti provare a mettere il nome della tua table, dovrebbe funzionare, xkè per esportare va alla ricerca di colonne e righe..
Non ho ben capito scusa.
Devo importare qualche classe?
Mi spieghi meglio sta cosa non lo capito..scusa tanto
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.
ho trovato questo esempio
http://community.visual-basic.it/tdj.../20/19983.aspx
però nn lo bene capito scusate la mia ignoranza.
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.
prima di tutto devi installare infragistics e importare gli strumenti in visual studio... praticamente ti fa vedere l'esposrtatore come una label da inserire...
poi devi associare nel pageload la tua tabella ad una fonte dati... per cui..
dttable.datasource=Dset;
(dove Dset è il dataset, o dove salvi i dati qnd li estrai durante la connessione e l'esecuzione del select sql)...e costruirla
dttable.databind();
dopo, visto che hai inserito l'esportatore nella pagina html (dopo avrlo importato nel programma..
attraverso:
<igtblexp:UltraWebGridExcelExporter ID="UltraWebGridExcelExporter1" runat="server" onBeginExport="UltraWebGridExcelExporter1_BeginExp ort" >
</igtblexp:UltraWebGridExcelExporter>
crei un button... e nel suo evento OnClick() basta che inserisci:
this.UltraWebGridExcelExporter1.Export(this.dttabl e);
ossia gli passi la tabella...con la webgrid funziona..e visto che non c'è molta differenza logica rispetto alla tabella normale dovrebbe funzionare...(ps qst è senza il paging se lo metti devi aggiungere del codice..)