Generare file excel, con un pò di richieste...

mercoledì 04 aprile 2007 - 09.32

MadBrain Profilo | Newbie

Mi è stato richiesto di dare la possibilità agli utenti di un sistema di reportistica online di scaricare anche i dati in formato excel.
Ho ovviato semplicemente salvando uno stream in formato csv a partire dalla tabella del report visualizzata in una pagina web.

Ora però il cliente mi ha chiesto di aggiungere anche le intestazioni alle colonne e di modificare alcuni dei dati in modo da renderli più leggibili (ho in tabella delle colonne con codici che vengono "spiegati" tramite tooltip, cosa che in excel non si può fare)

Ho provato semplicemente a mettere una riga in più con l'intestazione nel cvs ma Excel mi ritorna un errore, dice che il file è in formato SYLK ma non riconoscibile... e qui mi blocco...
Ho anche provato ad utilizzare il writer excel di Infragistics (libreria che utilizzo per tutto il sito) ma non mi lascia modificare i dati "poco leggibili"

Ho cercato anche di capire come usare XML per creare un file Excel ma, non sapendo quale versione di Excel ci sarà sui client la scelta è limitativa... discorso opposto per i PIA, sarebbe molto preferibile non installare nulla sui server.

Insomma, ogni strada provata mi ha portato ad un nuovo intoppo... qualche consiglio?
---------------
"chi fa domande rischia di sembrare stupido
chi non ne fa rischia di restare stupido"

trasportation Profilo | Junior Member

La strada da seguire è semplice, generi un'output html con una tabella e le varie celle che ti servono per la formattazione, es:

<table>
<tr>
<td>Valore cella</td>
</td>
</td>

metti il content type per excel, es:

Response.BufferOutput = false;
Response.ContentType = "application/vnd.ms-excel";

Response.Write(<stringa formattata>);

e poi fai il response write della tua stringa html formattata come sopra per magia (non è vero ma è bello dirlo) la tua pagina si apre con excel bella e formattata, puoi utilizzare anche formattazioni diverse (grassetto, colori, ecc) e allineamenti, esisteono formattazioni specifiche per excel tipo la rotazione del testo e altre cosine molto belle dal punto di vista della formattazione.

Come vedi è molto semplice e hai il risultato che vuoi, se invece hai bisogno di cose più complesse (macro, calcoli, ecc.) esistono librerie apposta (non ho provato quella che hai usato tu ma altre) per questo tipo di funzionalità.

Una cosa importante è che nella pagina dove generi questo output non deve essere presente nulla nella pagina aspx a parte la direttiva @PAGE.

Spero sia chiaro

Ciao


/*
* web: http://www.robertobeccari.it
*/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5