Application/vnd.ms-excel

venerdì 27 luglio 2007 - 20.38

PEPE Profilo | Senior Member

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

>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

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

nulla è sempre un piacere. Ciao, M
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5