146 messaggi dal 05 maggio 2005
Ciao a tutti,
con questo codice:

Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
' ''Response.ContentEncoding = System.Text.Encoding.UTF8
Response.ContentEncoding = System.Text.Encoding.GetEncoding("latin9")
Response.AddHeader("Content-Disposition", "attachment; filename=" & filename & ".xls")
' ''Response.Charset = ""
Response.Cache.SetCacheability(System.Web.HttpCacheability.Public)
DG.EnableViewState = False

...

Page.RenderControl(htmlWrite)

Response.Write(htmlWrite.InnerWriter)
Response.End()

Riesco ad esportare su un foglio Excel il contenuto di una Datagrid presente su una pagina aspx.

Mi ritrovo una pagina con due Datagrid,vorrei poter esportare le due griglie a video in due fogli dello stesso file Excel.

Mi sapete indicare la strada da seguire?

Grazie,
Atropo
Ciao, ti riporto una porzione di codice che avevo io e dal quale puoi trarre qualche spunto, in pratica il codice non fa altro che crearti un nuovo foglio (sheet) in excel:

// Create a new Sheet:
Excel.Worksheet excelSheet = (Excel.Worksheet)excelWorkbook.Sheets.Add(excelWorkbook.Sheets.get_Item(++sheetIndex), Type.Missing, 1, Excel.XlSheetType.xlWorksheet);
excelSheet.Name = dt.TableName;

// Fast data export to Excel
string excelRange = string.Format("A1:{0}{1}", finalColLetter, dt.Rows.Count + 1);
excelSheet.get_Range(excelRange, Type.Missing).Value2 = rawData;

// Mark the first row as BOLD
((Excel.Range)excelSheet.Rows[1, Type.Missing]).Font.Bold = true;

fammi sapere se ti è stato d'aiuto
Modificato da ricardo78 il 26 ottobre 2010 12.41 -

Creazione Siti Vicenza
Posizionamento Siti - SEO
146 messaggi dal 05 maggio 2005
Grazie per l'esempio.

Mi domandavo se si poteva esportare la griglia in un altro foglio con la response senza utilizzare l'oggetto Excel.

Non è proprio possibile?

Grazie
710 messaggi dal 13 novembre 2008
Contributi
Atropo ha scritto:
Grazie per l'esempio.

Mi domandavo se si poteva esportare la griglia in un altro foglio con la response senza utilizzare l'oggetto Excel.

Non è proprio possibile?

Grazie


mi sa proprio che non è la soluzione migliore e che ti convenga usare l'oggetto Excel; ma... prova questo (con DataTable)

http://it.w3support.net/index.php?db=so&id=148945
146 messaggi dal 05 maggio 2005
Grazie a tutti!

Alla fine ho utilizzato Interop.Excel ed ho creato il mio file Excel dinamicamente partendo dal risultato di una query. Per i test fatti fino ad ora sembra funzionare. L'unico dubbio è che essendo il file generato da un'applicazione web, ho salvato il file in una cartella del server per poi fare il download dello stesso. E' un modo sensato o ci sono soluzioni migliori?

Atropo
potresti usare un httpHandler che crea un singolo file excel con il metodo del tuo primo post. Una volta memorizzati i DataTable in un repository (anche la Session può andar bene), ti basta aprire 2 volte l'handler (ad es. in un popup) passando un riferimento al repository così lui accede ai dati ed effettua la scrittura dei files e fa partire i download :)

Davide Guida
Technical Architect @ Razorfish Healthware
http://davideguida.altervista.org
146 messaggi dal 05 maggio 2005
Con il metodo del mio primo post però non riesco ad estrarre i dati di più datatable su diversi foglio del file Excel.

Ma il fatto di salvare il file sul server prima del download è una scelta sensata?

Atropo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.