Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Application/vnd.ms-excel
venerdì 27 luglio 2007 - 20.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
ven 27 lug 2007 - 20:38
Salve a tutti,
ho la necessita di generare sul browser un docimento excel senza salvarlo sul disco.
Ho utilizzato la seguente procedura per andare a leggere il contenuto di un datagrid e dare il response sulla pagina per ottenere il foglio excel.
Dim dg As DataGrid = dgDatiRad
Response.Clear()
Response.ContentType = "application/vnd.ms-excel"
Response.ContentEncoding = System.Text.Encoding.UTF8
Dim tw As System.IO.StringWriter = New System.IO.StringWriter
Dim hw As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(tw)
dg.RenderControl(hw)
Dim str_tw As String = tw.ToString
Response.Write(str_tw)
Response.Flush()
Response.Close()
Allora il tutto funziona correttamente se ho Office 2003. E' capitato per caso che su un computer era installato Office 2000 e mi ha apero la pagina ma tutta incasinata, in realta di foglio excel non c'entra nulla :D:D.
Sapete per caso se ci sono modi differenti di renderizzare a seconda della versione?
Grazie 1000.
ghio
Profilo
| Newbie
41
messaggi | Data Invio:
sab 28 lug 2007 - 09:20
>Salve a tutti,
>ho la necessita di generare sul browser un docimento excel senza
>salvarlo sul disco.
>
>Ho utilizzato la seguente procedura per andare a leggere il contenuto
>di un datagrid e dare il response sulla pagina per ottenere il
>foglio excel.
>
> Dim dg As DataGrid = dgDatiRad
> Response.Clear()
> Response.ContentType = "application/vnd.ms-excel"
> Response.ContentEncoding = System.Text.Encoding.UTF8
>Dim tw As System.IO.StringWriter = New System.IO.StringWriter
>Dim hw As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(tw)
> dg.RenderControl(hw)
> Dim str_tw As String = tw.ToString
> Response.Write(str_tw)
> Response.Flush()
> Response.Close()
>
>Allora il tutto funziona correttamente se ho Office 2003. E'
>capitato per caso che su un computer era installato Office 2000
>e mi ha apero la pagina ma tutta incasinata, in realta di foglio
>excel non c'entra nulla :D:D.
>
>Sapete per caso se ci sono modi differenti di renderizzare a
>seconda della versione?
>Grazie 1000.
In realtà quando salvi il "foglio excel" non fai altro che scrivere in un file con estensione xls una tabella html, in seguito è excel che interpreta questa tabella e la converte in un foglio di lavoro. per fare una prova apri il file salvato con wordpad. Quindi, tornando alla domanda, devi controllare se excel2000 permette la conversione. Ciao, M
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
sab 28 lug 2007 - 10:39
Grazie 1000 per la tua info.
Ho visto la stringa html che viene generata ed effettivamente potrebbge essere quello il problema visto che mi mette un sacco di parametri per ogni riga nello style.
Provo a renderizzare il datagrid in altro modo ottenendo una struttura semplice
<table>
<tr>
<td>
</td>
</tr>
</table>
Vi faccio sapere...ora mi godo il week-end :P.
ghio
Profilo
| Newbie
41
messaggi | Data Invio:
sab 28 lug 2007 - 13:25
nulla è sempre un piacere. Ciao, M
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !