Creare nuovi fogli di lavoro Excel
Data di pubblicazione: 30/11/2004
Voto della community: 3,96
(Votanti: 8)
Nel precedente articolo avevamo visto come con l'uso di una semplice sintassi SQL, qualche riga di codice C#.NET e il driver Microsoft OleDb, si riescono a leggere dati da un foglio di lavoro Excel come se si leggessero da un qualsiasi database. In questo articolo, come promesso, vediamo invece come creare da codice dei nuovi file .xls, con l'ausilio della sintassi delle tabelle html!
I lettori si chiederanno: "ma cosa c'entra l'html con Excel?!" A prima vista sembrano effettivamente due mondi completamente diversi, ma, grazie alla grande versatilità del software Microsoft, riescono a collaborare insieme semplificando notevolmente la vita a noi programmatori. Volendo infatti, possiamo salvare in un file di testo il codice di markup html utile per la creazione di tabelle (con gli elementi table, tr, td, ...), rinominare il file con estensione .xls, e scoprire, aprendo il file, di aver creato un nuovo foglio di lavoro Excel, con tanto di dati al suo interno, formattati però come una vera e propria tabella html! Prima di iniziare la scrittura del file, vengono dichiarati tutti gli xml-namespace (cioè gli spazi dei nomi degli elementi xml utilizzati, quindi nel nostro caso quello di office, quello di excel e quello dell'html 4.0) a noi utili per inserire degli ulteriori parametri di formattazione del nostro foglio di lavoro Excel, come ad esempio il suo nome, che dichiariamo inserendolo all'interno del tag <x:Name>mioFoglio</x:Name>, dove x, appunto, è il riferimento al namespace di excel che abbiamo così dichiarato: xmlns:x=\"urn:schemas-microsoft-com:office:excel\" alcune righe sopra. Questa parte, che comprende anche i meta-tag necessari per definire il tipo di contenuto del documento, non va modificata, poiché da essa dipende appunto la struttura del nostro nuovo foglio Excel, mentre potrete personalizzare il resto del programma modificando la sintassi html di creazione della tabella, oppure il metodo di acquisizione dei dati da inserire, prendendoli per esempio da un database. Il metodo che scrive i dati nel nuovo foglio di stile, writeToFile() contiene il metodo Server.MapPath(FileName) che consente di ottenere il percorso fisico del nuovo file. Tale metodo prende come parametri il nome del nuovo foglio di Excel (completo di estensione .xls) e un oggetto di tipo ArrayList; anche in questo caso, l'uso dell'oggetto ArrayList è completamente sostituibile tramite l'uso di DataTable o DataSet, con dati prelevati da qualunque sorgente di dati desideriate. In questo esempio viene inserito dall'utente un unico dato tramite una semplice TextBox; potrete ovviamente adattare questa applicazione alle vostre esigenze inserendo tutti i controlli di input di cui necessitate. Ecco di seguito il codice della pagina ASP.NET:
<%@ Page Language="C#" Debug="true"%>
|
||||||||||||||||||||||||