Bonjour,
Il existe un module python permettant de produire des fichiers csv valides : le module 'csv' Il serait je pense plus judicieux d'utiliser ceci si l'on va modifier CPSCollector. Ce serait surement une bonne idée de remonter cette modification dans le repo. Ce problème est d'ailleurs spécifié dans le fichier CollectorDocument.py: # FIXME: should use the standard cvs.py module Mal orthographié d'ailleurs (il s'agit bien du module csv, pas de cvs.py) En effet, le pipe est rarement utilisé par les utilisateurs, mais un jour il s'agira peut-être de copier/coller des informations dans le formulaire contenant ces caractères. Le module csv permet de choisir le délimiteur, et de spécifier la méthode de traitement des champs contenant ce caractère (échappement de celui-ci, utilisation de guillemets, etc.) Ce module prend en charge tout l'encodage/décodage du fichier CSV et est très simple d'utilisation. Le format utilisé par Excel est en général séparateur ; utilisation de guillemets " et doublage des guillemets pour les guillemets dans les champs. A noter qu'il faudra redémarrer Zope pour voir les changements, même en mode debug Cdt, Jonathan ________________________________ De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Pascal Van Caldenborgh Envoyé : mardi 19 juin 2007 12:18 À : [email protected] Objet : Re: [CPS-users-fr] [CPSCollector] Modifier leséparateur des fichier .csv N'est-il pas possible de mettre des " entourant le texte à mettre entre les séparateurs virgule ? mes fichiers csv produits avec OpenOffice sont générés de cette manière, CPS doit pouvoir traiter ça On 6/19/07, Patas-d'Illiers Laure <[EMAIL PROTECTED]> wrote: Question : on récupère les réponses, on obtient un fichier en ..csv, où les champs sont délimités par des virgules, et qu'on peut ouvrir dans un tableur. Mais si un utilisateur a saisi une virgule à l'intérieur d'un champ, elle est considérée comme un séparateur et cela décale tout. Comment permettre à l'utilisateur de saisir des virgules sans que cela décale les résultats ? Réponse : la virgule est le séparateur de champs par défaut dans le format csv. Pour éviter tout problème, on va utiliser le caractère | comme séparateur à la place de la virgule. Ce caractère, appelé «pipe», est obtenu au clavier par les touches AltGr et 6. C'est un caractère rare qui n'est jamais saisi par les utilisateurs dans les champs. Aller dans l'instance Zope qui contient le site CPS, dans le répertoire Products qui contient les produits CPS, et modifier le produit CPSCollector qui gère les formulaires. Dans le produit /instance_zope/Products/CPSCollector, modifier le fichier CollectorDocument.py. Les lignes : if v and (v.find('\n') != -1 or v.find('"') != -1 or \ v.find (',') != -1): deviennent : if v and (v.find('\n') != -1 or v.find('"') != -1): Et la ligne : l += str(v) + ', ' devient : l += str(v) + '| ' La modification prendra effet pour tous les sites CPS qui sont dans cette instance Zope. Pour récupérer le fichier .csv dans un tableur : Dans Calc : ouvrir Calc, ouvrir le fichier .csv, une boîte de dialogue s'ouvre, il faut décocher la case Virgule, cocher la case Autres et saisir | dans la zone d'à côté. Dans Excel : ouvrir Excel, Menu Données, Données externes, rechercher le fichier .csv, une boîte de dialogue s'ouvre, cliquer sur Délimité, puis décocher les cases des séparateurs, cocher la case Autre et saisir | dans la zone d'à côté. ______________________________ Laure Patas d'Illiers Chef de projet Ministère des Finances DPAEP 2B Projets applicatifs 20 place des vins de France 75573 Paris cedex 12 [EMAIL PROTECTED] 01 53 44 22 73 -----Message d'origine----- De : Denis Bitouzé [mailto: [EMAIL PROTECTED] Envoyé : lundi 18 juin 2007 20:01 À : [email protected] Objet : [CPS-users-fr] [CPSCollector] Modifier leséparateur des fichier .csv Bonjour, dans le README de CPSCollector, il est indiqué : « You can download all collected data as a csv file. » Est-il possible de choisir un autre séparateur de champ que la virgule pour le fichier .csv ? En effet, si un champ de type « textarea » rempli par un internaute contient une virgule, le fichier .csv est difficilement exploitable. Merci d'avance. -- Denis _______________________________________________ cps-users-fr Adresse de la liste : [email protected] Gestion de l'abonnement : < http://lists.nuxeo.com/mailman/listinfo/cps-users-fr <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr> > This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
_______________________________________________ cps-users-fr Adresse de la liste : [email protected] Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
