ESEMPIO 2 ASP - LETTURA FILE DI EXCEL

Scenario:

Vogliamo visualizzare in una pagina WEB il contenuto del foglio "studenti" contenuto nel file di excel "sample.xls" visualizzato in figura:

P.S.: per chi fosse interessato il file di excel è scaricabile cliccano qui.

Setup:

Creiamo il file excel.asp incollandoci dentro il codice ASP sottostante:

<HTML>
<BODY>
<TABLE BORDER=1>
<TR><TH>ID</TH><TH>Cognome</TH><TH>Nome</TH><TH>Classe</TH></TR>
<%
Const ColonnaMatricola=1
Const ColonnaCognome=2
Const ColonnaNome=3
Const ColonnaClasse=4

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = false

objExcel.Workbooks.Open("c:\sample.xls")
Set objWorkbook = objExcel.Workbooks("sample.xls").sheets("Studenti")
riga= 2
Do While (objWorkbook.Cells(riga,ColonnaMatricola).Value <> "")
   response.write "<TR><TD>" & objWorkbook.Cells(riga, ColonnaMatricola).Value & "</TD>"+vbcrlf
   response.write "<TD>" & objWorkbook.Cells(riga, ColonnaCognome).Value & "</TD>"+vbcrlf
   response.write "<TD>" & objWorkbook.Cells(riga, ColonnaNome).Value & "</TD>"+vbcrlf
   response.write "<TD>" & objWorkbook.Cells(riga, ColonnaClasse).Value & "</TD></TR>"+vbcrlf
   riga = riga + 1
Loop
objExcel.Quit
Set objExcel=Nothing
%>
</TABLE>
</BODY>
</HTML>

Commentiamo alcune istruzioni:
1) l'istruzione
createObject("Excel.Application") apre un'istanza del programma excel (che quindi deve essere installato sul server HTTP). Tale istanza ci consentirà di leggere il contenuto del file "sample.xls";
2) l'istruzione objExcel.visible=false impedisce la visualizzazione del programma Excel sul video del server http che appare dopo l'esecuzione di createObject("Excel.Application");
3) l'istruzione
objExcel.WorkBooks.open apre il file "sample.xls" e lo aggiunge all'insieme delle cartelle aperte (WorkBooks) dell'istanza appena creata (objExcel):
4) l'istruzione 
set ObjWorkBook = objExcel.WorkBooks...sheets.. consente di riferirsi al foglio "studenti" (sheets("Studenti")) della cartella di excel "sample.xls" (WorkBooks("sample.xls")) mediante un unica variabile: ObjWorkBook;
5) l'istruzione
riga=2 tiene conto del fatto che i dati iniziano alla riga 2
6) la condizione che è definita dopo il
Do While fa in modo che l'iterazione si ripeta finchè non arrivo ad una cella vuota sulla 1° colonna (che corrisponde a quellla del'ID);
7a) l'istruzione
ObjWorkBook.cells(riga,colonnaMatricola) contiene la matricola dello studente registrato sulla riga riga.
7b) l'istruzione
ObjWorkBook.cells(riga,colonnaCognome) contiene il cognome dello studente registrato sulla riga riga.
7c) l'istruzione
ObjWorkBook.cells(riga,colonnaNome) contiene il nome dello studente registrato sulla riga riga.
7d) l'istruzione
ObjWorkBook.cells(riga,colonnaClasse) contiene la classe dello studente registrato sulla riga riga.
8) l'istruzione
riga=riga+1 consente di passare ad analizzare la riga successiva;
9) l'istruzione
objExcel.quit chiude l'istanza di excel aperta con il createObject;
10) l'istruzione
set objExcel=nothing libera lo spazio di memoria utilizzato per gestire la lettura del file di excel.

Demo:

L'esecuzione di excel.asp produce il risultato visibile in questa demo.
N.B:
a) Se sul server non è installato Excel lo script ASP non funziona e nella finestra del browser appare il seguente errore:

b) Se il percorso del file, impostato nel metodo objExcel.WorkBooks.open, è errato allora nella finestra del browser appare il seguente errore: