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>

Répondre à