Sélectionner une page

Parfois, vous avez simplement besoin d’un moyen rapide de convertir une feuille de calcul en un fichier de valeurs séparées par des virgules. Lorsque vous n’avez pas d’interface graphique pour s’occuper de cette tâche, Ralph Kattan a  trouvé la commande parfaite pour vous.

Combien de fois on a dû travailler pour télécharger des données vers un nouveau système (qu’il s’agisse d’un CMS, d’un CRM, d’un HRM, etc.), pour découvrir que la plate-forme n’acceptait pas le format de fichier dont je disposais. Je pouvais avoir une feuille de calcul ou un fichier JSON avec des tonnes de données, mais le système n’acceptait qu’un fichier CSV.

Fichiers CSV

Vous savez ce que c’est : Comma-Separated Value (valeur séparée par une virgule). Il s’agit d’un fichier plat de données, chaque entrée étant séparée par une virgule. Aujourd’hui, certaines applications permettent d’exporter un fichier au format CSV. Même Google Docs permet une telle action avec Sheets. Mais toutes les applications ne peuvent pas prendre en charge cette exportation. Il se peut que vous ayez un fichier créé par une autre application (comme une application ou un service qui génère des fichiers JSON) et que vous ayez besoin que ce fichier soit converti au format CSV.

Que faites-on ?

Puisque nous avons Linux à notre disposition, nous nous tournons vers un outil simple et open-source appelé csvkit. Cette application pratique m’a permis de gagner quelques heures de travail à plusieurs reprises. Ce que csvkit peut faire, c’est convertir et travailler avec CSV. Si vous avez déjà effectué des travaux de développement ou déployé suffisamment de plates-formes en réseau (comme des outils CMS), vous avez très probablement rencontré une situation où vous deviez télécharger des données au format CSV.

Et tout ce que vous avez, c’est un fichier de feuille de calcul.

Si vous êtes sur un ordinateur de bureau, vous pouvez toujours ouvrir le fichier dans la suite bureautique de votre choix et l’enregistrer sous. Mais qu’en est-il si vous êtes sur un serveur headless et que vous devez travailler rapidement ? Vous ne voulez pas avoir à SCPer le fichier sur votre bureau, à le charger, à l’enregistrer dans le format requis, puis à SCPer le fichier sur le serveur.

Ce dont vous aurez besoin

Je vais faire la démonstration de csvkit sur Ubuntu Server 21.10. Pour que cela fonctionne, vous aurez besoin d’une distribution Ubuntu et d’un utilisateur ayant les privilèges sudo. Enfin, vous aurez besoin d’un fichier de feuille de calcul à convertir.

Comment installer csvkit

Csvkit est disponible dans les dépôts standards, l’installation est donc très simple. Connectez-vous à votre serveur Ubuntu (ou à votre bureau), ouvrez une fenêtre de terminal et lancez la commande :

sudo apt-get install csvkit –y

C’est tout bon, vous avez bien effectué l’installation.

Comment convertir un fichier XLS en CSV ?

Supposons que vous ayez le fichier clients.xlsx et que vous ayez besoin de le convertir en clients.csv pour pouvoir ensuite le télécharger en tant que liste de clients dans votre nouvel outil CRM. La feuille de calcul est déjà présentée dans le format exact requis par votre CMS, il ne vous reste plus qu’à la convertir.

Pour une telle conversion, vous utiliserez la commande in2csv (incluse dans csvkit) comme suit :

in2csv clients.xlsx > clients.csv

Si vous avez des colonnes ou des lignes sans nom dans votre fichier source, il se peut que la commande vous avertisse que des valeurs alphanumériques ont été utilisées à la place des entrées manquantes. La conversion ne devrait prendre que quelques secondes (en fonction de la taille du fichier). Une fois la conversion terminée, vous devriez avoir un fichier nommé clients.csv dans le même dossier. Vous pouvez vérifier ce fichier avec :

less clients.csv

Vous devriez voir un fichier CSV parfaitement formaté, prêt à être téléchargé (Image 1).

Image1

Il en va de même pour la conversion d’un fichier JSON, qui est traitée comme suit :

in2csv clients.json > clients.csv

Si vous devez convertir ce fichier de CSV en JSON, vous pouvez le faire avec la commande csvjson comme suit :

csvjson clients.csv > clients.json

Csvkit a quelques autres trucs pratiques dans sa manche. Vous pouvez lister les noms des colonnes dans un fichier avec :

cvscut -n clients.csv

Maintenant que vous connaissez les noms des colonnes de votre source CSV nouvellement convertie, vous pouvez convertir uniquement certaines colonnes du fichier clients.csv vers un autre fichier CSV. Supposons que vous ayez les colonnes Prénom et Nom de famille et que vous ne souhaitiez convertir que ces colonnes dans le nouveau fichier. Vous pouvez le faire avec :

csvcut -c ‘First Name’,’Last Name’ clients.csv > names.csv

Et c’est ainsi que nous pouvons manipuler des fichiers XLS, JSON et CSV avec csvkit. Cet outil n’est peut-être pas utilisé très souvent, mais lorsque vous en aurez besoin, vous serez heureux de l’avoir sous la main.