Ouvrir fichier CSV en présisant le type des colonnes
Syphou
Messages postés52Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention 6 juin 2011
-
8 mai 2007 à 16:16
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
10 août 2009 à 14:49
Bonjour,
Je cree un fichier CSV par programmation et une foi crée j'aimerai louvrir avec Excel mais dans certaine colonne j'ai des identifiants du genre 00000654. Exel pense que c'est un chiffre et me met donc 654 se qui fausse tout mon truc evidemment.
Comme specifier le type des colonnes?
De meme que tout mes accent, il met des caractères bizarre pcq il ne les connait pas.
Le moyen evidemment cest ouvrir excel (a la main), faire fichier / ouvrir fichier csv, et la on peut specifier manuellement tous les types de differentes colonnes ainsi que l'encodage (UTF8, ANSI)mais il faut que sa se fasse par programmation... Quelqu'un sait ?
Merci
J'ouvre mon fichier comme ceci :
Dim appExcel
As Excel.Application
'Application Excel
Dim wbExcel
As Excel.Workbook
'Classeur Excel
Dim wsExcel
As Excel.Worksheet
'Feuille Excel
'Ouverture de l'applicationappExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier ExcelwbExcel = appExcel.Workbooks.Open(MonFichier.csv)
'wsExcel correspond à la première feuille du fichierwsExcel = wbExcel.Worksheets(1)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 10 août 2009 à 14:33
Salut
Je sait que le topic date un peut, mais je cherche des précisions sur les types de données en CSV ce qui m'à amené ici.
Pour évité ce genre de problèmes le plus simple (et le mieux je pense) est de crée un fichier schema.ini (dans le même dossier que ton CSV) et de typer les colonnes avec.
Rubrique d'aide MSDN
Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 10 août 2009 à 14:49
Heeee oups
Rubrique d'aide MSDN En plus il semblerais que sa ne fonctionne pas si bien avec excel , mais aucun soucis avec des connexions type BdD. Exemple :
Dim testCo As New ADODB.Connection
Dim testDat As New ADODB.Recordset
'OleDb <- Ce que j'utilise
testCo.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Dossier contenant le CSV (les chemins avec espaces sont accepté)\;Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
'ODBC (en connexion direct les chemins avec espaces ne sont pas accepté
'Crée alors un fichier DSN (fichier pour ne pas pourrir la base de registre) que tu peut stocké dans un dossier avec espaces et dans le quel tu peut mettre un chemin vers le CSV avec espaces
'testCo.ConnectionString = "FILEDSN=Chemin au DSN"
'Ou encore en ODBC direct (/!\ au espaces)
'testCo.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=""Dossier contenant le CSV (les chemins avec espaces ne sont pas accepté !!!)"";Extensions=csv;"
testCo.Open
'Les deux dernier paramètres en option ou à modifier selon les besoins ;)
testDat.Open "SELECT * FROM " & NomFichier, testCo, adOpenStatic, adLockOptimistic
'[...] <- Utilisation du Recordset
testCo.Close
testDat.Close
set testCo = Nothing
set testDat = nothing
Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo