asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 9403
ASPCode.it - Store

  > > Articoli

Generare un documento Excel

Data di pubblicazione: 28/08/2001        Voto della community: 4,48 (Votanti: 9)


Una interessante applicazione delle pagine ASP, è la generazione di report in Excel o in Word. In questo articolo analizzeremo (tramite un semplice esempio) come è possibile generare un documento Excel direttamente tramite uno script ASP, senza alcuna necessità di installare Excel stesso o oggetti COM sul nostro server.

La seguente pagina ASP, quando lanciata dal client, genera un foglio Excel costituito da una tabella di 2 colonne e 10 righe con i valori da 1000 a 10000 Lire e la rispettiva trasformazione in Euro.

Alla fine della tabella viene aggiunta una riga con due campi: uno con la scritta "TOTALE" e l'altro con la somma dei valori in Euro, somma che viene ottenuta scrivendo proprio la formula che andrebbe utilizzata se stessimo lavorando su un foglio di Excel, e cioè: SUM(B1:B10).

La variabile filename deve essere settata con il nome che intendiamo assegnare al file, senza estensione; l'estensione verrà aggiunta automaticamente tramite le successive righe di codice.

<%
'assegna il nome al file Excel che si desidera generare
Dim filename
filename = "prova"

'abilita la bufferizzazione
Response.Buffer = true

'definisce il tipo di documento
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=" &filename& ".xls"

'crea la tabella del foglio Excel
Response.Write "<table>"
Dim n
for n = 1 to 10
  Response.Write "<tr>"
  Response.Write "<td width=70>"&n*1000&"</td>"
  Response.Write "<td width=70>"&n*1000/1936&"</td>"
  Response.Write "</tr>"
next
Response.Write "<tr><td></td><td></td></tr>"
Response.Write "<tr>"
Response.Write "<td width=70><b><i>TOTALE</i></b></td>"
Response.Write "<td width=70>=SUM(B1:B10)</td>"
Response.Write "</tr>"
Response.Write "</table>"

'invia l'output HTML bufferizzato
Response.Flush
Response.End
%>




Utenti connessi: 9403