CSV-Dateien zusammenführen
Ein Werkzeug, das mehrere CSV-Dateien mit gleicher oder ähnlicher Spaltenstruktur zu einer einzigen Tabelle zusammenführt, ohne dass Sie die Zeilen von Hand kopieren müssen. Gedacht für alle, die regelmäßig mehrere Exportdateien, etwa aus verschiedenen Filialen oder Zeiträumen, zu einer gemeinsamen Auswertung zusammenbringen möchten.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Spalten werden automatisch abgeglichen
Stimmen die Spaltenüberschriften der hochgeladenen Dateien überein, werden die Zeilen aller Dateien untereinander in eine gemeinsame Tabelle übernommen. Enthält eine Datei zusätzliche Spalten, die in einer anderen fehlen, bleiben die entsprechenden Zellen in den Zeilen der übrigen Dateien einfach leer, statt die Zusammenführung mit einer Fehlermeldung ganz abzubrechen und alles zu blockieren, obwohl der übrige Inhalt eigentlich einwandfrei und vollständig passt.
Wenn Spaltennamen leicht abweichen
Die Zusammenführung erwartet identische Spaltenüberschriften; unterscheiden sich diese leicht zwischen den Dateien, etwa „Kundennr.“ in der einen und „Kunden-Nr“ in der anderen Datei, lässt sich vor dem Zusammenführen eine Zuordnung zwischen den abweichenden Spaltennamen festlegen, damit beide als dieselbe Spalte in der fertigen Tabelle erscheinen, statt fälschlich getrennt geführt und separat und unvollständig ausgewertet zu werden, Datei für Datei und Spalte für Spalte.
Reihenfolge der Dateien
Die Reihenfolge, in der die Dateien im Ergebnis erscheinen, entspricht der Reihenfolge, in der Sie sie hochladen. Innerhalb jeder Datei bleibt die ursprüngliche Zeilenfolge erhalten, sodass sich im fertigen Ergebnis weiterhin nachvollziehen lässt, welcher Abschnitt aus welcher Ausgangsdatei stammt, ohne dass dafür eine zusätzliche Kennzeichnung oder eigene Spalte nötig wäre oder nachträglich mühsam von Hand ergänzt und gepflegt werden müsste.
Wo Sie es nutzen
Die Zusammenführung läuft im Browser, kostenlos und ohne Limit, ohne dass die Dateien übertragen werden. Über die API lässt sich derselbe Schritt automatisieren, etwa um am Ende jeden Monats mehrere Filial-Exporte automatisch zu einer gemeinsamen Datei zusammenzuführen, ohne manuellen Eingriff jeden Monat aufs Neue und ganz ohne jeden Zeitverlust dabei, verlässlich, pünktlich und vollkommen fehlerfrei jedes Mal wieder, ohne Ausnahme.
Anwendungsfälle
Umsätze mehrerer Filialen zusammenführen
Bäckerei Hoffmann e. K. führt die monatlichen Verkaufsexporte mehrerer Filialen zu einer einzigen Tabelle zusammen, um sie gemeinsam auszuwerten.
Preislisten zweier Lieferanten vergleichen
Weber Metallbau GmbH führt die Preislisten zweier Lieferanten in einer Tabelle zusammen, um die Konditionen direkt nebeneinander vergleichen zu können.
Kontaktlisten mehrerer Veranstaltungen bündeln
Jonas Weber führt die exportierten Kontaktlisten zweier Veranstaltungen zusammen, bevor er sie gesammelt in sein Kontaktverwaltungssystem importiert.
Häufige Fragen
Müssen die Spaltenüberschriften exakt übereinstimmen?
Für die automatische Zuordnung ja; bei leicht abweichenden Namen lässt sich vorab eine Zuordnung zwischen den Spalten festlegen.
In welcher Reihenfolge erscheinen die Zeilen im Ergebnis?
In der Reihenfolge, in der Sie die Dateien hochladen, wobei die Zeilenfolge innerhalb jeder Datei erhalten bleibt.
Wie viele Dateien lassen sich auf einmal zusammenführen?
Solange die zusammengeführte Datei nicht größer als 25 MB wird, gibt es keine feste Obergrenze bei der Anzahl der Dateien.
Was passiert, wenn eine Spalte nur in einer der Dateien vorkommt?
Die entsprechenden Zellen bleiben in den Zeilen der übrigen Dateien leer, die Zusammenführung wird deswegen nicht abgebrochen.
Ist die Zusammenführung kostenlos?
Ja, im Browser läuft sie kostenlos und ohne Limit. Nur die Nutzung über die API kostet $0.002 pro Anfrage.
Brauche ich ein Konto?
Nein, weder im Browser noch über die API ist ein Konto erforderlich.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/merge-csv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/merge-csv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/merge-csv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/merge-csv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/merge-csv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.merge_csv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |