Originariamente inviato da matteoMag
beh provo a spiegarvi meglio..
direi che è meglio.

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..
Chiarisci: Da tutte le parti cosa significa?

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ì.
Non è 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.



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 cima grazie delle risposte!
Sì e No.
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.