Importer automatiquement les codes postaux de La Poste dans Google Sheets
Dans cet article, nous allons expliquer comment importer automatiquement les codes postaux français dans une feuille Google Sheets à l’aide de Google Apps Script. Nous utiliserons l’API de La Poste qui fournit les données de manière ouverte.
Étape 1 : Comprendre les données
Les données sont disponibles sous licence ouverte via datanova.laposte.fr. L’API propose un schéma décrivant les différentes colonnes, ce qui nous permet de récupérer les informations comme le code INSEE, le nom de la commune, le code postal, etc.
Étape 2 : Création du script Google Apps Script
Ouvrez une feuille Google Sheets, puis accédez à Extensions > Apps Script et ajoutez le script suivant :
/**
* Script d'importation des codes postaux dans Google Sheets
* Source des données : La Poste (https://datanova.laposte.fr/)
* Licence : Open Licence 2.0
*
* Ce script récupère les codes postaux via l'API de La Poste et les importe dans une feuille Google Sheets.
*/
function importerCodesPostaux() {
const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const urlSchema = 'https://datanova.laposte.fr/data-fair/api/v1/datasets/laposte-hexasmal/schema';
const urlCSV = 'https://datanova.laposte.fr/data-fair/api/v1/datasets/laposte-hexasmal/raw';
// Récupérer le schéma de l'API
const reponseSchema = UrlFetchApp.fetch(urlSchema);
const donneesSchema = JSON.parse(reponseSchema.getContentText());
// Extraire les 5 premiers en-têtes correspondant aux colonnes du CSV
const entetes = donneesSchema.slice(0, 5).map(colonne => colonne.key);
// Récupérer les données CSV
const reponseCSV = UrlFetchApp.fetch(urlCSV);
const donneesCSV = Utilities.parseCsv(reponseCSV.getContentText(), ';');
// Remplacer la première ligne par les en-têtes récupérés
donneesCSV[0] = entetes;
feuille.clear(); // Effacer les données existantes
feuille.getRange(1, 1, donneesCSV.length, donneesCSV[0].length).setValues(donneesCSV);
// Mettre les en-têtes en gras
feuille.getRange(1, 1, 1, donneesCSV[0].length).setFontWeight('bold');
// Figer la première ligne
feuille.setFrozenRows(1);
}
Explication du code
- Récupération du schéma : Nous interrogeons l’API pour obtenir les noms des colonnes de données.
- Récupération des données CSV : Nous téléchargeons les codes postaux actuels depuis l’URL CSV de La Poste.
- Mise en forme : Le script importe les données, remplace les en-têtes par les noms corrects, met l’en-tête en gras, et fige la première ligne.
Conclusion
Grâce à ce script, vous avez maintenant un moyen automatisé de récupérer et mettre à jour la base des codes postaux dans Google Sheets. C’est un exemple parfait de la manière dont les données ouvertes et Google Apps Script peuvent simplifier des tâches quotidiennes.