Fichier de données CSV Lignes directrices techniques

Table des matières

Introduction

La présente spécification vise à établir la syntaxe et la sémantique des fichiers de données CSV (valeurs séparées par des virgules). Un fichier CSV contient des données tabulaires (chiffres et texte) en texte brut. Chaque ligne du fichier est un enregistrement ou une ligne de données et chaque enregistrement ou ligne est constitué d’un ou plusieurs champs, séparés par des virgules.

Structure de fichier de données CSV

Un fichier de données CSV doit être exempt d’erreurs et satisfaire à la spécification Common Format and MIME Type for Comma-Separated Values (CSV) Files (RFC-4180) (en anglais).

Ligne d’en-têtes

La première ligne du fichier CSV doit être une ligne d’en-têtes, soit les en-têtes uniques des colonnes de données. Les en-têtes de colonne doivent être définis dans le fichier de dictionnaire des données associé au jeu de données.

Dans l’exemple ci-dessous, les valeurs de la ligne 1, field_name1, field_name2 et field_name3 sont les en-têtes de colonne.

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,eee,fff
zzz,yyy,xxx

Encodage de caractères UTF-8

Tous les fichiers de données CSV doivent utiliser l’encodage de caractères UTF-8. Les caractères spéciaux (caractères accentués, etc.) sont alors lus correctement. Le fichier de données doit inclure une BOM pour préciser le type d’encodage. La BOM doit apparaître au début du fichier et est composée de la séquence d’octets 0xEF,0xBB,0xBF.

Si la BOM n’est pas dans le fichier, certains programmes (Excel, produits Microsoft) pourraient afficher les caractères accentués incorrectement.

Imprimé d'écran qui montre les données contenant des erreurs avec les caractères français

Deuxième imprimé d'écran qui montre les données contenant des erreurs avec les caractères français

Les instructions pour convertir un fichier de données au format UTF-8 et ajouter la BOM (au moyen du Bloc-notes) se trouvent plus loin dans la section.

Qualité des données CSV

Un fichier de données doit satisfaire aux exigences suivantes en matière de qualité des données.

Nombre de champs uniforme

Toutes les lignes du fichier CSV doivent contenir le même nombre de champs.

Dans l’exemple ci-dessous d’un fichier CSV invalide, la troisième ligne ne comporte pas trois champs.

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,eee,fff,ggg
zzz,yyy,xxx

Lignes vides

Chaque ligne doit comporter des données. Certains champs d’une ligne peuvent être vides, mais pas tous.

Dans l’exemple ci-dessous d’un fichier CSV invalide, la troisième ligne est vide.

field_name1,field_name2,field_name3
aaa,bbb,ccc
,,
ddd,,fff
,yyy,xxx

En-têtes dupliqués

La première rangée du fichier CSV est la ligne d’en-têtes, soit les en-têtes des colonnes de données. Les valeurs des en-têtes doivent être uniques et ne peuvent pas être dupliquées.

Dans l’exemple de fichier CSV invalide ci-dessous, field_name1 apparaît à deux reprises dans la ligne d’en-têtes.

field_name1,field_name2,field_name3,field_name1
aaa,bbb,ccc,ddd
ddd,eee,fff,ggg
zzz,yyy,xxx,www

Lignes dupliquées

La même ligne de données ne doit pas être dupliquée dans le fichier CSV. Les valeurs individuelles peuvent apparaître sur plusieurs lignes, mais une ligne entière ne peut pas être dupliquée.

Dans l’exemple ci-dessous d’un fichier CSV invalide, les lignes 3 et 5 sont identiques.

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,eee,fff
zzz,yyy,xxx
ddd,eee,fff
aaa,yyy,zzz

Colonnes dupliquées

La même colonne de données ne doit pas être dupliquée dans le fichier CSV. Exceptions : colonnes de valeurs vides (aucun contenu dans la colonne) ou colonnes de valeurs zéro (la valeur est 0 pour tous les champs de la colonne). Les valeurs individuelles peuvent apparaître dans plusieurs colonnes, mais une colonne entière ne peut pas être dupliquée.

Dans l’exemple ci-dessous d’un fichier CSV invalide, les colonnes 2 et 3 sont dupliquées (sauf pour les en-têtes).

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,bbb,ccc
zzz,bbb,ccc
ggg,bbb,ccc

Dans l’exemple ci-dessous d’un fichier CSV valide, les colonnes 2 et 3 ne sont pas dupliquées puisqu’elles sont vides.

field_name1,field_name2,field_name3,field_name4
aaa,,,123
ddd,,,456
zzz,,,789
ggg,,,100

Dans l’exemple ci-dessous d’un fichier CSV valide, les colonnes 2 et 3 ne sont pas dupliquées puisqu’elles contiennent la valeur 0 (zéro).

field_name1,field_name2,field_name3,field_name4
aaa,0,0,123
ddd,0,0,456
zzz,0,0,789
ggg,0,0,100

Modèles de données

Si un élément data pattern est précisé dans le dictionnaire de données pour une colonne en particulier, les éléments de données de la colonne doivent être conformes au modèle. Si aucun élément data pattern n’est précisé, n’importe quel contenu peut apparaître dans la colonne.

Dans l’exemple ci-dessous d’un fichier CSV invalide, le dictionnaire de données précise que le contenu de la colonne 2 (field_name2) doit seulement inclure des chiffres. La valeur de la colonne 2 (field_name2), ligne 3, ne contient pas seulement des chiffres.

field_name1,field_name2,field_name3
aaa,123,ccc
ddd,EEE,fff
zzz,777,xxx

Conditions des données

Si un élément data condition est précisé dans le dictionnaire de données pour une colonne en particulier, les éléments de données de la colonne doivent être conformes à la condition. Les conditions des données sont précisées au moyen du langage de schéma CSV (version 1.1.) (en anglais).

Dans l’exemple ci-dessous d’un fichier CSV invalide, le dictionnaire de données précise que la condition des données de la colonne 1 (field_name1) est que les valeurs doivent être uniques. Les valeurs de la colonne 1 (field_name1), lignes 2 et 5, sont identiques et donc ne sont pas uniques.

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,eee,fff
zzz,yyy,xxx
aaa,ggg,FFF

Première ligne dans un champ de texte multiligne

Si un champ contient de multiples lignes de texte (p. ex., un paragraphe), la première ligne de texte ne doit pas être vierge. Certains tableurs (p. ex., Microsoft Excel) pourraient afficher seulement la première ligne d’une cellule multiligne. Si cette première ligne est vierge, il est possible que rien ne s’affiche. Cela pourrait porter l’utilisateur à croire que le champ est vide.

Dans l’exemple suivant d’un fichier CSV invalide, la troisième rangée contient un champ de texte multiligne (champ no 3) entre guillemets. La première ligne du champ est vierge :

field_name1,field_name2,field_name3
aaa,bbb,ccc
ddd,eee,”
fff”
zzz,yyy,xxx

Contenu accessible dans un champ de texte multiligne

Si un champ contient de multiples lignes de texte (p. ex., en têtes, paragraphes et listes), le texte doit se conformer aux techniques de rédaction en langage clair (en anglais) pour les paragraphes, les listes et les en têtes des règles pour l’accessibilité des contenus Web (WCAG) 2.0. Les techniques suivantes s’appliquent.

T1 : En utilisant des conventions de formatage de texte courantes pour les paragraphes

Cette technique définit comment les paragraphes sont formatés et comment ils sont séparés du reste du contenu (p. ex., en têtes, autres paragraphes).

Des renseignements supplémentaires sur cette technique peuvent être consultés sur la page Web suivante : T1: Using standard text formatting conventions for paragraphs (en anglais).

T2 : En utilisant des conventions de formatage de texte courantes pour les listes

Cette technique définit comment les listes et les éléments de liste sont formatés.

Des renseignements supplémentaires sur cette technique peuvent être consultés sur la page Web suivante T2: Using standard text formatting conventions for lists (en anglais).

T3 : En utilisant des conventions de formatage de texte courantes pour les en têtes

Cette technique définit comment les en têtes sont formatés et comment ils sont séparés du reste du contenu (p. ex. paragraphes).

Des renseignements supplémentaires sur cette technique peuvent être consultés sur la page Web suivante T3: Using standard text formatting conventions for headings (en anglais).

Conversion de fichiers au format UTF-8 au moyen de Bloc-notes

Voici les étapes à suivre pour convertir un fichier de données CSV au format d’encodage UTF-8 et pour ajouter la BOM au moyen de Bloc-notes sous Windows.

  1. Étape 1 : Cliquez avec le bouton droit de la souris sur le fichier CSV, puis sélectionnez l'option « Ouvrir avec » > Bloc-notes.
  2. Étape 2 : Cliquez sur Fichier> Enregistrer sous :
    Imprimé d'écran du menu de fichier, l'option sauveguarder est surligné
  3. Étape 3 : Cliquez sur le menu déroulant « Encodage », puis sélectionnez « UTF-8 » :
    Imprimé d'écran du menu sauvegarder, l'option UTF-8 du menu d'encodage est surligné
  4. Étape 4 : Enregistrez le fichier CSV, ceci va aussi rajouter le BOM automatiquement au tout début du fichier.

Le fichier CSV est maintenant codé correctement :

Imprimé d'écran de données avec les accents français qui sont représenté correctement

Outils de validation

Voici une liste d’outils pouvant être utiles pour valider des fichiers de données CSV.

Erreurs courantes

Voici une liste des erreurs courantes dans les fichiers de données CSV.

Fin de ligne incorrecte

Toutes les lignes d’un fichier CSV doivent se terminer par la combinaison de caractères retour chariot/saut de ligne. Plusieurs tableurs (Microsoft Excel, etc.) peuvent lire et écrire des fichiers CSV qui ont seulement le caractère saut de ligne comme fin de ligne.

Les valeurs de données contiennent de la présentation ou du formatage

Les valeurs de données d’un fichier CSV ne doivent pas inclure de présentation ou de formatage inutile, seulement les données brutes. Voici des exemples de présentation ou de formatage inutile.

Signaler un problème sur cette page
Date de modification :