|null $buchungen */ /** @var array|null $ueberblick */ /** @var string $datei */ ?>

Nichts wurde gespeichert. Die Zahlen zeigen, was ein Import anlegen würde.

schon vorhanden – am Fingerabdruck erkannt
darunter Splitzeilen
Fehler

Konten in der Datei

$anzahl) { $teile[] = View::h((string)$name) . ': ' . (int)$anzahl; } echo implode(' · ', $teile); ?>

Protokoll

So muss die CSV aussehen

Semikolon als Trenner, Komma als Dezimalzeichen, Datum als TT.MM.JJJJ – genau so, wie der Export sie schreibt. Eine Datei aus einem anderen Programm darf die Spalten umsortieren: Zugeordnet wird über die Kopfzeile, nicht über die Position. Unverzichtbar sind Datum, Konto und Betrag.

Buchung18.03.2026Girokonto042 StadtwerkeAbschlag MärzWohnen:StromHaus 1 -84,00ja
Buchung20.03.2026Girokonto EigenübertragRücklage Tagesgeld-500,00nein
Splitzeile Anteil WasserWohnen:WasserHaus 1 -30,00

Eine Umbuchung trägt statt der Kategorie ein Gegenkonto und steht – wie im Datenmodell – nur einmal in der Datei, beim erfassenden Konto. Splitzeilen folgen unmittelbar auf ihre Buchung; ihre Beträge müssen deren Summe ergeben. Konten legt der Import nicht an, Kategorien und Klassen schon.

Was schon vorhanden ist, wird übersprungen: Gleiches Konto, Datum, Betrag, Nummer und Buchungstext gelten als dieselbe Buchung. Ein zweiter Lauf derselben Datei ändert also nichts.