Kostenlos starten mit 200 Credits - keine Kreditkarte erforderlich
Zurück zum Blog Leitfaden

Postleitzahl und Hausnummer in Excel mit ApiCheck (inklusive Koordinaten)

Reichern Sie Ihre Excel-Datei einfach mit Koordinaten (lat/lon) auf Basis von Postleitzahl und Hausnummer über die ApiCheck-API und ein Node.js-Skript an.

Mark 23 Januar 2023 2 Min. Lesezeit
Postleitzahl und Hausnummer in Excel mit ApiCheck (inklusive Koordinaten)

Haben Sie eine Excel-Datei mit Postleitzahlen und Hausnummern und möchten GPS-Koordinaten hinzufügen? Mit einem einfachen Node.js-Skript und der ApiCheck-API erledigen Sie das vollständig automatisch.

Was benötigen Sie?

  • Node.js auf Ihrem Computer installiert
  • Einen ApiCheck-API-Schlüssel (kostenloses Konto erstellen)
  • Ihre Excel-Datei gespeichert als CSV

CSV vorbereiten

Speichern Sie Ihre Excel-Datei als CSV (durch Trennzeichen getrennte Werte). Achten Sie darauf, dass die Spalten folgende Namen tragen:

Spaltenname Beschreibung
Postcode Niederländische Postleitzahl (z. B. 1092CX)
Huisnummer Hausnummer (z. B. 12)
Toevoeging Optional: Zusatz (z. B. A)

Abhängigkeiten installieren

mkdir adress-anreicherung && cd adress-anreicherung
npm init -y
npm install fast-csv request

Das Skript: index.js

const fs = require('fs');
const csv = require('fast-csv');
const request = require('request');

const API_KEY = 'IHR_API_KEY_HIER';
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 || '',
    });

    // Kurze Pause, um Rate-Limiting zu vermeiden
    await new Promise(resolve => setTimeout(resolve, 50));
  }

  csv.writeToPath(OUTPUT_FILE, results, { headers: true })
    .on('finish', () => console.log(`Fertig! Ergebnisse gespeichert in ${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)
    );
  });
}

Skript ausführen

node index.js

Das Skript verarbeitet alle Zeilen und schreibt eine neue CSV-Datei mit den zusätzlichen Spalten Straat, Stad, Latitude und Longitude.

Ergebnis in Excel öffnen

Öffnen Sie die Ausgabe-CSV-Datei in Excel. Sie verfügen nun für jede Adresse über die GPS-Koordinaten (WGS 84) — direkt einsetzbar für Kartenvisualisierung, Routenplanung oder geografische Analysen.

Arbeiten mit großen Dateien

Verarbeiten Sie Tausende von Adressen? Erhöhen Sie dann die Pause zwischen den Aufrufen (setTimeout) oder verwenden Sie einen API-Schlüssel mit höheren Rate-Limits. Kontaktieren Sie uns über support@apicheck.nl für Enterprise-Optionen.