DATAtourisme

Paramétrage de l'export des flux au format CSV (et TSV)


#1

Bonjour,

Serait-il possible de permettre au diffuseur de paramétrer les options du format d’export CSV des flux, à savoir le séparateur (virgule, tabulation, point virgule…) ainsi que l’encapsulation des champs (chaîne de de caractères entre simples guillemets ou doubles guillemets) comme le permette les logiciels classiques manipulant des CSV (LibreOffice sur la capture d’écran…) ?

import_csv_libreoffice

Plusieurs raisons à cela.

Tout d’abord, forcer l’extension TSV pour le séparateur en tabulation pose des problèmes au niveau de la compatibilité avec les tableurs classiques comme LibreOffice. Cette extension semble d’ailleurs très peu utilisée, ne faisant seulement l’objet d’une ancienne recommandation technique à l’IANA (https://www.iana.org/assignments/media-types/text/tab-separated-values). La majorité des logiciels utilisent, sans distinction du séparateur, l’extension CSV.

Ensuite, il est indispensable de pouvoir encapsuler les chaînes de caractères avec des guillemets si besoin est. En effet, si on extrait et reformate un champ de type chaîne de caractères mais composé uniquement de chiffres et commençant par 0, l’absence de guillemets fait que les tableurs classiques et API CSV convertissent ce champ en nombre et supprime donc le 0 non significatif de départ. A titre d’exemple, prenons un numéro de téléphone national, (exemple 0203040506), sans les guillemets, il est décodé en 203040506.

Merci pour votre retour.

Cordialement,


a rendu ce sujet visible #2

#3

Bonjour,

Cette fonctionnalité n’est pas prévue. L’export CSV actuel s’attache simplement à respecter la RFC 4180, qui énonce :

  1. Fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes.

Lors de l’ouverture du fichier dans LibreOffice, vous pouvez utiliser les options proposées pour atteindre vos objectifs.

Cordialement.


Flux CSV avec champs contenant des retours à la ligne (CR / LF)
#4

Bonjour,

Je comprends que vous vous attachiez à respecter la RFC 4180.

Cependant :

Premièrement, selon mes essais (et comme je l’indique avec l’exemple du numéro de téléphone), les chaines de caractères ne sont pas encapsulées ni dans simples ni dans de doubles guillemets dans votre format d’export CSV.

Ceci fait référence à l’alinéa 5 de la RFC et non au 6.

  1. Each field may or may not be enclosed in double quotes (however
    some programs, such as Microsoft Excel, do not use double quotes
    at all). If fields are not enclosed with double quotes, then
    double quotes may not appear inside the fields. For example:

    “aaa”,“bbb”,“ccc” CRLF
    zzz,yyy,xxx

Il ne s’agit donc en aucun cas d’un paramétrage du côté de l’import sur un outils de visualisation (LibreOffice, excel…) mais bien d’une option au niveau de l’export dont il serait souhaitable de disposer.

Deuxièmement, le format d’export TSV que vous proposez ne correspond, sauf erreur de ma part, à aucune RFC mais semble une simple extension d’usage inspirée du MIME type "“text/tab-separated-values” de l’IANA auquel fait référence la RFC 4180 dans son alinéa 1.

  1. Introduction

The comma separated values format (CSV) has been used for exchanging
and converting data between various spreadsheet programs for quite
some time. Surprisingly, while this format is very common, it has
never been formally documented. Additionally, while the IANA MIME
registration tree includes a registration for
“text/tab-separated-values” type, no MIME types have ever been
registered with IANA for CSV. At the same time, various programs and
operating systems have begun to use different MIME types for this
format. This RFC documents the format of comma separated values
(CSV) files and formally registers the “text/csv” MIME type for CSV
in accordance with RFC 2048 [1].

Aussi, il me semble plus cohérent et compatible au regards de logiciels existants, (qu’il s’agisse de tableurs ou d’ETL Extract-transform-load comme Pentaho ou Talend…) d’avoir une extension unique CVS de fichier d’export et de pouvoir choisir le séparateur (virgule ou tabulation) comme paramètre d’export.

Merci pour votre retour.

Cordialement.


#5

Bonjour,

les chaines de caractères ne sont pas encapsulées ni dans simples ni dans de doubles guillemets dans votre format d’export CSV.

Conformément à la RFC, l’encapsulage par double quotes n’est obligatoire que lorsque la valeur contient un retour à la ligne, un double quotes ou une virgule. C’est bien le cas dans les exports DATAtourisme. Si la valeur ne contient pas ces éléments, l’encapsulation n’est pas obligatoire, ce qui est le cas des numéros de téléphone.

Cordialement.