Code postal et numéro de rue dans Excel avec ApiCheck (coordonnées incluses)
Enrichissez facilement votre fichier Excel avec des coordonnées (lat/lon) à partir du code postal et du numéro de rue via l'API ApiCheck et un script Node.js.
Vous avez un fichier Excel avec des codes postaux et des numéros de rue, et vous souhaitez y ajouter des coordonnées GPS ? Avec un simple script Node.js et l'API ApiCheck, faites-le entièrement automatiquement.
De quoi avez-vous besoin ?
- Node.js installé sur votre ordinateur
- Une clé API ApiCheck (créez un compte gratuit)
- Votre fichier Excel enregistré au format CSV
Préparer le CSV
Enregistrez votre fichier Excel au format CSV (valeurs séparées par un délimiteur). Assurez-vous que les colonnes portent les noms suivants :
| Nom de colonne | Description |
|---|---|
Postcode |
Code postal néerlandais (par ex. 1092CX) |
Huisnummer |
Numéro de rue (par ex. 12) |
Toevoeging |
Optionnel : complément (par ex. A) |
Installer les dépendances
mkdir enrichisseur-adresses && cd enrichisseur-adresses
npm init -y
npm install fast-csv request
Le script : index.js
const fs = require('fs');
const csv = require('fast-csv');
const request = require('request');
const API_KEY = 'VOTRE_CLE_API_ICI';
const INPUT_FILE = 'adressen.csv';
const OUTPUT_FILE = 'adressen_met_coordinaten.csv';
const rows = [];
fs.createReadStream(INPUT_FILE)
.pipe(csv.parse({ headers: true }))
.on('data', row => rows.push(row))
.on('end', () => processRows(rows));
async function processRows(rows) {
const results = [];
for (const row of rows) {
const { Postcode, Huisnummer, Toevoeging } = row;
const url = `https://api.apicheck.nl/lookup/v1/address/nl` +
`?postalcode=${Postcode}&number=${Huisnummer}` +
`${Toevoeging ? `&numberAddition=${Toevoeging}` : ''}`;
const data = await fetchAddress(url, API_KEY);
results.push({
...row,
Straat: data?.street || '',
Stad: data?.city || '',
Latitude: data?.location?.coordinates?.latitude || '',
Longitude: data?.location?.coordinates?.longitude || '',
});
// Courte pause pour éviter la limitation de débit
await new Promise(resolve => setTimeout(resolve, 50));
}
csv.writeToPath(OUTPUT_FILE, results, { headers: true })
.on('finish', () => console.log(`Terminé ! Résultats enregistrés dans ${OUTPUT_FILE}`));
}
function fetchAddress(url, apiKey) {
return new Promise((resolve) => {
request({ url, headers: { 'X-api-key': apiKey }, json: true },
(err, res, body) => resolve(err ? null : body)
);
});
}
Exécuter le script
node index.js
Le script traite toutes les lignes et écrit un nouveau fichier CSV avec les colonnes supplémentaires Straat, Stad, Latitude et Longitude.
Ouvrir le résultat dans Excel
Ouvrez le fichier CSV de sortie dans Excel. Vous disposez désormais des coordonnées GPS (WGS 84) pour chaque adresse, prêtes à être utilisées pour la visualisation cartographique, la planification d'itinéraires ou des analyses géographiques.
Travailler avec de gros fichiers
Vous traitez des milliers d'adresses ? Augmentez la pause entre les appels (setTimeout) ou utilisez une clé API avec des limites de débit plus élevées. Contactez support@apicheck.nl pour les options entreprise.