direi che è meglio.Originariamente inviato da matteoMag
beh provo a spiegarvi meglio..
Chiarisci: Da tutte le parti cosa significa?Originariamente inviato da matteoMag
un software di terze parti butta fuori dei file di log in formato csv e che,dato che sono log presenti su alcuni impianti sparsi per l'europa,vengono aperti di default con excel da tutte le parti..![]()
Non è così.Originariamente inviato da matteoMag
ora se come dice gibra questo codice non funziona, che costrutto devo usare?io credevo che anche se il formato è csv si potesse utilizzare lo stesso codice per aprire gli xlsx di excel dato che come ho detto si aprono così.
Excel ha la funzionalità di aprire un file CSV, ma è interna e non è automatica, anche perchè Excel 'soffre' di alcuni problemi quando si importano file non Excel.
Ad esempio: tronca gli zeri davanti, formatta le date, ecc. cose che per 'noi programmatori' sono deleterie.
Pensiamo ad esempio ai numeri di Partita IVA, oppure i Codici che senza gli zero davanti perdono il loro vero significato.
Sì e No.Originariamente inviato da matteoMag devo quindi fregarmene del fatto che sono aperti di default con excel e utilizzare un costrutto simile a un file di testo? scusate l'ignoranza ma come si è capito non sono una cimagrazie delle risposte!
![]()
A parte il fatto che tu usando:
"Select * from [Foglio1$];"
tu stai comandando Excel di leggere i dati dal Foglio1, mentre tu hai un file CSV,
bisogna vedere la struttura di questo file CSV perchè, purtroppo, NON è sempre vero che è davvero formattato come un CSV, ma piuttosto come un file di testo delimitato che può essere perciò strutturato in maniera diversa.
Ad esempio
- il separatore potrebbe essere la vrigola ma anche il carattere tabulazione
- i valori potrebbero non essere racchiusi, oppure essere racchiusi tra apici, o doppi apici
La cosa più intelligente che puoi fare è:
- Apri Excel
- avvia la registrazione di una macro
- vai ad aprire il file come file *.CSV
- imposta tutti i parametri (separatore, delimitatore, ecc.)
- quando hai caricato il file in Excel, se ti soddisfa come lo vuoi tu, termina la registrazione della macro.
- adesso vai su Macro - Modifica ed otterrai il codice VBA completo
- ora ti basta tradurlo in VB.NET
Per aiutarti, ecco due link che mostrano come fare (il secondo è senza dubbio migliore e più completo):
Creating an Excel sheet from a CSV file in VB.Net
http://www.mindfiresolutions.com/Cre...VBNet-1028.php
Import a CSV File Into an Excel Workbook Programmatically - CodeProject
http://www.codeproject.com/Tips/1364...book-Programma
In entrambi i casi, è necessario utilizzare l'oggetto Excel.Application.
Per fare questo ti raccomando caldamente di leggerti PRIMA il mio articolo:
VS2010 - Early-Late Binding in VB.NET + Excel
http://nuke.vbcorner.net/Progetti/NE...T/Default.aspx
ed usare la tecnica che descrivo.
Ti salverà la vita perchè il codice funzionerà anche con versioni diverse di Office.![]()
![]()