CSV (Semikolon-getrennt, erste Zeile = Spaltenüberschriften, Reihenfolge egal, Groß-/Kleinschreibung egal). Beispielzeile:
| Vorname | Name | Firma | Objekt | Mieter-Typ | Einheit | Wohnfläche (m²) | Einzug | Auszug | Kaution (€) | Kaution fällig am | Kaution Notiz | Kaltmiete | Nebenkosten | Parkplatz | Strom | Telefon | E-Mail | IBAN | Notizen | Weitere Kontakte | Zählerart | Zählernummer | Zählerstand | Zähler-Ablesedatum |
| Max | Mustermann | | Schillerstr. 6 | Privat | ME 03 | 68,5 | 01.03.2024 | | 1650 | 01.03.2024 | | 550 | 100 | 0 | 0 | 0170... | max@mail.de | DE... | | Partnerin,Erika Mustermann,0170...,erika@mail.de | Kaltwasserzähler | 12345678 | 123,4 | 01.03.2024 |
Datum als TT.MM.JJJJ oder JJJJ-MM-TT, Beträge im deutschen Format (Komma als Dezimaltrennzeichen). Vorname ist optional (Spalte kann fehlen), ebenso die drei Kaution-Spalten (nur befüllen, wenn eine Mietsicherheit erfasst werden soll – fehlen alle drei Kaution-Spalten komplett, bleibt eine ggf. bereits im Tool erfasste Kaution bei einem erneuten Import unangetastet). Mieter-Typ: Privat, Gewerbe oder Freiberufler/Verein (Spalte optional, Standard = Privat, Erkennung auch aus Freitext wie "Freiberufler" oder "e.V.") – steuert die Umsatzsteuer-Differenzierung bei Nebenkosten & Abrechnung: Nur Gewerbe wird mit USt-Aufteilung behandelt, Freiberufler/Verein wie Privat ohne gesonderten USt-Ausweis. Firma (optional, Spalte kann fehlen – dann bleibt ein ggf. bereits erfasster Firmenname beim erneuten Import unangetastet): Firmenname bzw. Bezeichnung des Mieters, z.B. bei Gewerbe, Freiberuflern oder Vereinen, wird dann anstelle bzw. zusätzlich zu Vor-/Nachname angezeigt. Ist bei „Objekt" ein Name angegeben, der noch nicht existiert, wird das Objekt automatisch angelegt.
Objekt/Einheit beim erneuten Import (wichtig): Ein Mieter mit gleichem Vor- und Nachnamen wird aktualisiert statt dupliziert. Ist bei einer Zeile „Objekt" ausgefüllt, wird danach gesucht/zugeordnet (auch beim Anlegen zwingend nötig). Sind „Objekt" und/oder „Einheit" in einer Zeile leer oder als Spalte gar nicht vorhanden, bleibt die bisherige Zuordnung des bereits vorhandenen Mieters unangetastet – so lässt sich z.B. eine Datei nur zum Aktualisieren der Miete erneut importieren, ohne Objekt/Einheit jedes Mal mit angeben zu müssen und ohne Gefahr, den Mieter versehentlich dem falschen Objekt zuzuordnen oder zu duplizieren. Eine Zeile ohne Objektangabe, für die kein bestehender Mieter mit diesem Namen gefunden wird, wird trotzdem angelegt (keine Daten gehen verloren) – aber als „⚠ Kein Objekt" markiert und am Ende in der Importmeldung namentlich aufgeführt. Solche Mieter erscheinen oben in der Mieterliste (Filter „⚠ Ohne Objekt (offen)") und können dort im Bearbeiten-Dialog jederzeit einem Objekt und optional einer Einheit zugeordnet werden.
Weitere Kontakte (optional, Spalte kann fehlen – dann bleiben ggf. bereits erfasste Kontakte beim erneuten Import unangetastet, genau wie bei der Kaution): pro Kontakt Rolle,Name,Telefon,E-Mail (kommagetrennt, einzelne Felder dürfen leer sein), mehrere Kontakte durch | getrennt, beliebig viele (der Hauptmieter zählt als 1. Kontakt und steht bereits in den Spalten davor). Das Namensfeld wird beim Import automatisch am ersten Leerzeichen in Vorname/Nachname aufgeteilt (im Formular danach als getrennte Felder editierbar). Ist die Spalte vorhanden, aber bei einem Mieter leer, werden dessen bereits erfasste weiteren Kontakte beim Import gelöscht (bewusst, da eine leere aber vorhandene Spalte "keine weiteren Kontakte" bedeutet).
Wohnfläche & Zähler der Mieteinheit (beide optional, Spalten können fehlen): Die Wohnfläche (m²) wird direkt in die per „Einheit" verknüpfte Mieteinheit übernommen (nur wenn eine Einheit angegeben ist und die Spalte einen Wert enthält – so lassen sich Mieter- und Mieteinheiten-Stammdaten in einem Arbeitsgang importieren, ohne zusätzlich „Mieteinheiten importieren" nutzen zu müssen). Für einen Zähler genügt „Zählernummer" oder „Zählerstand" in der Zeile; „Zählerart" wird nach Möglichkeit einer der festen Zählerarten zugeordnet (z.B. „Strom" → „Stromzähler (Wohnung)"), sonst als eigene Zählerart übernommen. Bei erneutem Import wird ein bereits vorhandener Zähler anhand der Zählernummer wiedererkannt und nur Stand/Datum aktualisiert, statt einen weiteren Zähler anzulegen.
JSON: Array von Objekten (oder {"tenants":[...]}) mit den Feldern vorname, name, firma, objectName, mieterTyp, unit, flaeche, moveIn, moveOut, kalt, nebenkosten, heizkosten, parkplatz, strom, phone, email, ibans, notes, kautionSoll, kautionDatum, kautionNotiz, contacts, zaehler (alternativ ein verschachteltes kaution: {amount, date, note}) — vorname, firma, flaeche, die Kaution-Felder, contacts und zaehler optional, mieterTyp: "privat"|"gewerbe"|"freiberufler", moveIn/moveOut im Format JJJJ-MM-TT, ibans als Array oder kommagetrennter Text, contacts als Array von {role, name, phone, email} (beliebig viele), zaehler als Objekt {art, nummer, stand, datum} (ein Zähler je Mieterzeile).
Export → Import (Round-Trip): Die über „Mieterliste exportieren“ erzeugte CSV/Excel-Datei hat exakt die Spalten der Vorlage und lässt sich unverändert wieder importieren (Abgleich über Vor- und Nachname, Objekt). Die letzten drei Spalten Kaution (eingegangen), Aktueller Saldo und Status sind reine Information und werden ignoriert. Nur Berichte, nicht importierbar: Bewohnerliste, Mieterspiegel, Zählerstände. Kontoauszüge der Bank werden im Reiter Finanzen importiert.