View Full Version : [ VS .NET] Scrittura file xls senza Office sul PC Host
Diablo-IT
18-06-2009, 16:20
Ciao a tutti,
come da oggetto ho bisogno di poter esportare dei dati in una tabella excel, tramite un applicazione scritta in VB .net.
Sarebbe piuttosto facile se sul pc avessi MsOffice/Excel installati, dato che basterebbe aggiungere una "reference" all'oggetto COM "Microsoft Excel etc etc".
Il fatto e' che sul PC di un eventuale utilizzatore del software non e' detto che vi sia excel/office installato, e non ha senso dire "comprati excel se vuoi poter usare il mio software"!
Qualcuno di voi sa dirmi se in giro si trovano classi gia' fatte che facciano al caso mio, o come poter fare a esportare dati in una tabella excel senza dover necessariamente aver installato excel/openoffice sul pc dove girera' il software?
Grazie! :)
Kralizek
18-06-2009, 17:23
se ti accontenti di scrivere in excel-xml, puoi usare la libreria di CarlosAg
http://www.carlosag.net/Tools/ExcelXmlWriter/
come da oggetto ho bisogno di poter esportare dei dati in una tabella excel, tramite un applicazione scritta in VB .net.
Se si tratta di una semplice tabella ( campi e righe ) puoi fare a meno pure delle librerie freeware ( che hanno comunque il limite di poter creare solo file Excel-Xml ), dato che aggiungendo alcuni tag "speciali", e una struttura opportuna, puoi scrivere direttamente su XML-Excel Compatibile.
Esempio : ho una tabella con 4 campi : ID, NOME, COGNOME, STATO. La tabella ha N records, facciamo 9. Il file Xml essenziale perchè venga aperto correttamente in Excel senza errori e senza far domande all'utente è questo :
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Foglio1">
<Table>
<Row>
<Cell><Data ss:Type="String">ID</Data></Cell>
<Cell><Data ss:Type="String">NOME</Data></Cell>
<Cell><Data ss:Type="String">COGNOME </Data></Cell>
<Cell><Data ss:Type="String">STATO</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell><Data ss:Type="String">nome1</Data></Cell>
<Cell><Data ss:Type="String">cognome1</Data></Cell>
<Cell><Data ss:Type="String">stato1</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell><Data ss:Type="String">nome2</Data></Cell>
<Cell><Data ss:Type="String">cognome2</Data></Cell>
<Cell><Data ss:Type="String">stato2</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">3</Data></Cell>
<Cell><Data ss:Type="String">nome3</Data></Cell>
<Cell><Data ss:Type="String">cognome3</Data></Cell>
<Cell><Data ss:Type="String">stato3</Data></Cell>
</Row>
...
...
...
<Row>
<Cell><Data ss:Type="Number">9</Data></Cell>
<Cell><Data ss:Type="String">nome9</Data></Cell>
<Cell><Data ss:Type="String">cognome9</Data></Cell>
<Cell><Data ss:Type="String">stato9</Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
Scrivi la tua tabella dati in un Xml ( puoi anche chiamarlo nomeFile.xls ), con questa struttura, e sei a posto. ;)
Diablo-IT
23-06-2009, 16:04
Grazie ad entrambi per il reply.
@Kralizek: salvato il link nei preferiti. :)
@MarcoGG: la soluzione piu' semplice e' sempre la migliore, Grazie!
Devo riempire una tabella e basta, senza grafici o formattazioni particolari (solo stringhe generiche), xml e' perfetto.
P.S.
Se ricordo bene non e' la prima volta che rispondi ad un mio post in questa sezione, e hai sempre dato ottimi suggerimenti. :cool:
P.S.
Se ricordo bene non e' la prima volta che rispondi ad un mio post in questa sezione, e hai sempre dato ottimi suggerimenti. :cool:
Fa piacere questo tuo riconoscimento. :)
Dimostri educazione e intelligenza.
Penso che mi farò una lista nera degli utenti che chiedono / ricevono l'aiuto / scappano senza manco uno squallido 'grazie'... ( fosse per me vi bannerei tutti :D ).
Kralizek
23-06-2009, 23:18
il numero dei post dell'interlocutore aiuta :P
sotto i 10 post neanche mi scomodo a cliccare su Reply... e si sono stronzo lo so
il numero dei post dell'interlocutore aiuta :P
sotto i 10 post neanche mi scomodo a cliccare su Reply... e si sono stronzo lo so
Mmm, non so. Ho notato che non sono solo gli utenti-meteora ad agire così...
Diablo-IT
24-06-2009, 15:40
Fa piacere questo tuo riconoscimento. :)
Dimostri educazione e intelligenza.
Penso che mi farò una lista nera degli utenti che chiedono / ricevono l'aiuto / scappano senza manco uno squallido 'grazie'... ( fosse per me vi bannerei tutti :D ).
Azz, questo si che e' un complimento! :)
Come dici te, penso si tratti di semplice educazione/rispetto nei confronti degli altri, in fin dei conti quando qualcuno ti aiuta di propria volonta' (e in piu' senza chiedere nulla in cambio), almeno un ringraziamento o una conferma sul buon esito del tutto penso ci stia sempre bene.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.