Problème format csv

Résolu/Fermé
mike_guevara Messages postés 11 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 9 novembre 2007 - 5 sept. 2007 à 11:28
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 5 sept. 2007 à 15:33
Bonjour

Je fais une extraction à partir d'une base de donnée Progress en format csv.

Certains enregistrements contiennent des virgules pour contourner le problème j'encadre mes enregistrements par des ".

Le problème est que certains de mes enregistrements contiennent également des ". Donc, mes données sous excel sont faussées.

Comment puis-je résoudre ce pb?
A voir également:

12 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 11:40
:-) Le coup classique du CSV.

Voilà comment proprement exporter du CSV à coup sûr:

- doubler tout séparateur de chaîne trouvé dans la cellule ( ga"bu"zo ---> ga""bu""zo )
- quoter systématiquement toutes les cellules ( toto ----> "toto" )
- puis ajouter les cellules entre elles en séparant par une virgule. ( "toto","titi","tata" )
- séparer les lignes par \r\n

Et voilà !

Quel que soit le contenu de tes cellules, tout sera exporté sans problème.
0
la meilleure solution est de prendre un autre séparateur, comme # par exemple
bonne manip!

Morgane
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 11:46
J'en ai profité pour écrire un article dans la base de connaissances:
exporter a coup sur du csv
0
mike_guevara Messages postés 11 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 9 novembre 2007
5 sept. 2007 à 11:56
Merci c'est un bon début, mais...

le seul soucis c'est que je ne peux pas doubler les séparateurs de chaines (ton premier point),
car c'est une exportation que je compte automatiser.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 12:04
le seul soucis c'est que je ne peux pas doubler les séparateurs de chaines (ton premier point), car c'est une exportation que je compte automatiser.

Tu l'automatise avec quoi ?

La plupart des langages ont des fonctions de remplacement de caractères.
Ça ne devrait pas poser de problème.
0
mike_guevara Messages postés 11 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 9 novembre 2007
5 sept. 2007 à 14:21
Pour résumer la situation, mes données proviennent d'un ERP (mfgPRO), il y a plusieurs enregistrements qui me posent soucis et ils contiennent tous un ". par exemple: ecran LCD 20".

Dans mon extraction, il y a à peu 30000 enregistrements, il es bien évident que je peux pas me permettre de doubler les séparateurs de chaines à chaque fois que je rencontre un " dans mes enregistrements. (ecran LCD 20""")

J'ai lu ton article, il est très bien fait, j'ai tout compris (c'est dire), maintenant je me pose simplement la question si le format csv est approprié à mon extraction.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 14:55
Tout dépend de ton outils d'extraction.

C'est au l'outil qui génère le CSV qu'il faut modifier.

Si tu ne peux pas le modifier, je te conseille de développer l'export toi-même.
(Avec des requêtes SQL par exemple ; ou encore en utilisant un autre format d'export disponible dans ton logiciel (XML ?) et en convertissant toi-même en CSV).


Si tu ne peux pas modifier l'outils d'export et que l'outils d'export CSV intégré à ton ERP crache du CSV foireux, tu devrais contacter les développeurs pour leur signaler.
0
mike_guevara Messages postés 11 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 9 novembre 2007
5 sept. 2007 à 15:19
En fait, j'exporte avec Query Result, donc je fais mes requêtes moi même et plutot que d'extraire en format txt avec des séparateurs ; et ensuite de remettre en forme sous excel, je me suis dit pourquoi pas essayer le format csv, et ensuite intégrer mes données dans un classeur excel mis en forme et prêt à l'emploi.

Je pense que mon problème provient plus des données à exporter (qui comme par hasard contiennent des , et des ", que de l'export elle-même.

En tous cas merci pour ta précieuse aide.
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
5 sept. 2007 à 15:27
salut
pourquoi ne pas ouvrir directement le txt avec excel en passant par menu données / données externes / importer le fichier texte
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 15:29
Je pense que mon problème provient plus des données à exporter (qui comme par hasard contiennent des , et des ", que de l'export elle-même

Non.
Tout logiciel qui exporte en CSV doit être capable de le faire quel que soit le contenu des cellules
(Certains "bons" exporteurs CSV prennent même l'initiative d'exporter les données binaire au format hexa.)

Le fait est que la majorité des exports CSV présents dans les logiciels sont implémentés avec les pieds et n'appliquent pas la méthode que j'ai donnée.

Résultat: ça foire à la première présence de virgule, guillemet ou retour à la ligne.

Tes données ne sont pas en cause, rassures-toi.
0
mike_guevara Messages postés 11 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 9 novembre 2007
5 sept. 2007 à 15:30
Parce que je souhaite que l'utilisateur n'ai que son fichier excel à ouvrir, que l'extraction avec la requête sql qui va bien se fasse de manière transparente pour lui, et qu'il n'ai pas à faire ce genre de manipulation "au coup par coup".
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
5 sept. 2007 à 15:33
Dans ce cas, je te suggère l'export en HTML (renommé en XLS).
C'est transparent pour l'utilisateur, et tu n'a pas ce genre de problème.
0