Export CSV personnalisé – Episode 5
Un nouvel épisode de la sage « Export CSV personnalisé« . Aujourd’hui, voici comment personnaliser les formats des données exportées (notamment les liens hypertextes, les dates et les nombres).
Résumé des épisodes précédents
Avant de lire la suite, pensez à consulter ces articles du Grenier :
- Export CSV personnalisé
- Export CSV personnalisé – Episode 2
- Export CSV personnalisé – Episode 3
- Export CSV personnalisé – Episode 4
Retraiter les liens hypertextes
Nos classes d’export CSV proposent encore d’autres réglages, notamment la possibilité de « nettoyer » les liens hypertexte. Par défaut, les liens sont exportés comme ceci :
"Nom";"Prénom";"Email" "KUNTZ";"Anne";"mailto:anne.kuntz@orange.fr" "DELISLE";"Marie";"mailto:marie.delisle@sfr.fr" "LAMARK";"Paul";"mailto:paul.lamark@free.fr" "MARTIN";"Yves";"mailto:yves.martin@free.fr" "KELLER";"Maxime";"mailto:maxime.keller@free.fr" "HERMAND";"Marc";"mailto:marc.hermand@sfr.fr" "EOLE";"Rémi";"mailto:remi.eole@free.fr"
Mais le préfixe mailto:
peut être gênant selon l’exploitation que vous allez faire du fichier CSV. Chaque champ exportable propose une propriété CleanHyperlink
qui permet d’enlever ce préfixe. Voici un exemple de code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Sub TestExportCSV7() ' Variables Dim ce As New CSVExport Dim fld As CSVField ' Initialisations générales With ce .Source = "tbl Clients" .Target = "C:\Users\Hervé\Desktop\clients.csv" End With ' Le champ Nom Set fld = New CSVField fld.Name = "Nom Client" fld.Label = "Nom" ce.Fields.Add fld, fld.Name ' Le champ Prénom Set fld = New CSVField fld.Name = "Prénom Client" fld.Label = "Prénom" ce.Fields.Add fld, fld.Name ' Le champ Email (avec nettoyage du lien) Set fld = New CSVField fld.Name = "Email" fld.CleanHyperlink = all ce.Fields.Add fld, fld.Name ' Exportation If ce.Export() Then MsgBox "Exportation terminée !", vbInformation End If End Sub |
Vous obtenez :
"Nom";"Prénom";"Email" "KUNTZ";"Anne";"anne.kuntz@orange.fr" "DELISLE";"Marie";"marie.delisle@sfr.fr" "LAMARK";"Paul";"paul.lamark@free.fr" "MARTIN";"Yves";"yves.martin@free.fr" "KELLER";"Maxime";"maxime.keller@free.fr" "HERMAND";"Marc";"marc.hermand@sfr.fr" "EOLE";"Rémi";"remi.eole@free.fr"
Pour plus de détails sur les paramètres de CleanHyperlink
, reportez-vous à l’article Nettoyer des liens hypertexte à la volée.
Formater les dates
Par défaut, les dates sont exportées avec leur format Access (date + heure). Mais vous pouvez modifier le format final, grâce à la propriété Format
de la classe CSVField
. Par exemple, pour exporter les dates sans heures, vous écrivez :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub TestExportCSV8() ' Variables Dim ce As New CSVExport Dim fld As CSVField ' Initialisations générales With ce .Source = "tbl Clients" .Target = "C:\Users\Hervé\Desktop\clients.csv" End With ' Le champ Nom Set fld = New CSVField fld.Name = "Nom Client" fld.Label = "Nom" ce.Fields.Add fld, fld.Name ' Le champ Date de création Set fld = New CSVField fld.Name = "Date de création" fld.Format = "dd/mm/yyyy" ce.Fields.Add fld, fld.Name ' Exportation If ce.Export() Then MsgBox "Exportation terminée !", vbInformation End If End Sub |
Le résultat obtenu est :
"Nom";"Date de création" "KUNTZ";14/05/2007 "DELISLE";14/05/2007 "LAMARK";14/05/2007 "MARTIN";14/05/2007 "KELLER";14/05/2007 "HERMAND";14/05/2007 "EOLE";14/05/2007
Pour exporter des données compatibles MySQL, vous pouvez modifier le format de cette manière :
1 |
fld.Format = "yyyy-mm-dd" |
…et vous obtenez :
"Nom";"Date de création" "KUNTZ";2007-05-14 "DELISLE";2007-05-14 "LAMARK";2007-05-14 "MARTIN";2007-05-14 "KELLER";2007-05-14 "HERMAND";2007-05-14 "EOLE";2007-05-14
Formater les nombres
Les nombres peuvent également être formatés, le principe est le même. Par exemple :
1 |
fld.Format = "# ##0.00" |
Les formats autorisés sont ceux d’Access (consultez l’aide d’Access sur les formats pour plus de détails).