Importieren und exportieren
Lade deinen eigenen Zutatenkatalog aus CSV/JSON hoch (mit Vorlage, 3 Modi und Vorschau) oder lade ihn für Backup und Umzug herunter.
Worum es geht
Mit dem Fenster Zutaten importieren / exportieren lädst du deinen eigenen Katalog an eigenen Zutaten aus einer Datei hoch (gesammelt, ohne jede einzeln anzulegen) oder lädst ihn herunter, um ihn außerhalb der App zu haben.
Importieren und Exportieren betrifft nur den eigenen Katalog deines Kontos, nicht den öffentlichen globalen Katalog. Das Fenster sagt es selbst: „Eigener Katalog deines Kontos (der öffentliche Katalog bleibt unverändert).“ Der globale Katalog mit über 10.000 Zutaten ist schreibgeschützt und bleibt unberührt.
So öffnest du es
Klick im Zutatenkatalog auf die Schaltfläche Importieren / Exportieren im Kopfbereich. Das Fenster hat zwei Tabs: Importieren und Exportieren.
Importieren
Starte mit der Vorlage
Hast du noch keine Datei, klick auf CSV-Vorlage herunterladen (im Hinweis „Du weißt nicht, wo du anfangen sollst? Lade die Vorlage mit Beispielen herunter und bearbeite sie.“). Du erhältst vorlage-zutaten-areacacao.csv (Dateiname und Beispieltexte sind in der Sprache der Oberfläche), schon mit der richtigen Kopfzeile und zwei Beispielzeilen (Haselnuss-Praliné und Zartbitterkuvertüre 70 %), die du bearbeiten oder löschen kannst. Die Spaltennamen sind immer gleich, auf Englisch.
Die Vorlage enthält diese 24 Spalten (alle optional außer name):
name, category, subcategory, brand, supplier, customCode, pricePerKg, baseUnit, densityGPerMl, weightPerUnitG, water, fat, saturatedFat, carbs, sugars, protein, fiber, salt, kcalPer100g, cocoaButterFat, totalCocoa, alcohol, allergens, notes
Die Vorlage hat keine Spalte id: Beim Import legst du die Kennung nicht fest, das System erzeugt sie. (Die CSV-Datei, die du exportierst, enthält id schon, aber beim erneuten Import wird diese Spalte ignoriert. Siehe Exportieren.)
Wie bereite ich die CSV-Datei vor?
Das Fenster enthält einen aufklappbaren Bereich Wie bereite ich die CSV-Datei vor? mit den Regeln. Im Einzelnen:
- Nur
nameist Pflicht. Spalten, für die du keine Werte hast, lässt du leer. - Die Nährwerte gelten pro 100 g (wie im Datenblatt).
- Dezimaltrennzeichen: Punkt oder Komma werden akzeptiert (
18.50oder18,50, also auch das deutsche Format). Verwendest du das Komma als Dezimalzeichen, wird der Punkt als Tausendertrennzeichen gelesen (1.234,56ergibt tausendzweihundertvierunddreißig Komma sechsundfünfzig). allergens: Liste von Codes, getrennt durch;. Gültig sind die 14 amtlichen EU-Codes:gluten,crustaceans,eggs,fish,peanuts,soy,milk,nuts,celery,mustard,sesame,sulphites,lupin,molluscs. Jeder Code außerhalb dieser Liste wird ignoriert. Siehe Allergene EU-14.allergensleer = keine Allergene. Kennst du sie noch nicht, schreibundeclared(auchsin declararwird akzeptiert): Das Datenblatt bleibt dann mit nicht deklarierten Allergenen, und das ist nicht dasselbe wie „ohne Allergene“.alcohol: Gramm Ethanol pro 100 g (Weine und Liköre). Leer = keine Angabe.- Die Mikronährstoffe (Vitamine, Mineralstoffe, Cholesterin, Koffein) werden nicht per CSV geladen: Du trägst sie im Datenblatt der Zutat ein. (Brauchst du sie in einer Datei, nimm das Format JSON, das sie erhält.)
Daten laden
Du hast drei Möglichkeiten, den Inhalt zu liefern:
- Ziehen und ablegen: eine Datei in den Bereich „CSV- oder JSON-Datei hierher ziehen“.
- Auf Datei auswählen klicken und eine
.csv- oder.json-Datei von deinem Rechner wählen. - Oder Text manuell einfügen aufklappen und den Inhalt direkt einfügen.
Die App erkennt das Format automatisch (beginnt der Text mit { oder [, behandelt sie ihn als JSON, sonst als CSV) und zeigt es in der Auswahl Erkanntes Format, die du bei Bedarf von Hand korrigieren kannst. Die Auswahlfelder Erkanntes Format und Modus und die Schaltflächen erscheinen, sobald Inhalt geladen ist.
Wähl den Modus
Die Auswahl Modus legt fest, wie der Import angewendet wird. Der Abgleich mit deinen vorhandenen Zutaten erfolgt nach Name (ohne Unterscheidung von Groß- und Kleinschreibung):
| Modus | Was er tut |
|---|---|
| Nur neue anlegen (empfohlen, Standard) | Fügt die Zutaten hinzu, deren Name noch nicht existiert, und überspringt die, die du schon hast (sie bleiben unverändert). Überspringt auch die Namen von Datenblättern, die du gelöscht hast: Sie bleiben gelöscht. |
| Anlegen oder aktualisieren (nach Name) | Fügt die neuen hinzu und überschreibt vorhandene, deren Name übereinstimmt, mit den Daten aus der Datei. Stimmt der Name mit einem gelöschten Datenblatt überein, wird es mit den Daten aus der Datei wiederhergestellt. |
| Alle ersetzen (löscht vorhandene) | Entfernt alle deine eigenen Zutaten und importiert dann die aus der Datei (wobei Zutaten, die wieder auftauchen, nach Name reaktiviert werden). |
Der Modus Alle ersetzen ist destruktiv: Er entfernt vor dem Import alle deine eigenen Zutaten. Das Fenster warnt davor („Achtung: Diese Option löscht vor dem Import ALLE deine vorhandenen eigenen Zutaten. Das lässt sich nicht rückgängig machen.“) und fragt beim Klick auf Importieren noch einmal nach („„Alle ersetzen“ LÖSCHT vor dem Import alle deine vorhandenen eigenen Zutaten. Fortfahren?“). Das Löschen ist weich (Soft-Delete), daher zeigen Rezepte, die diese Zutaten schon verwendet haben, ihr Datenblatt weiterhin an und funktionieren weiter; Zutaten, die nicht in der Datei stehen, erscheinen aber nicht mehr unter Meine Zutaten.
Vorschau und Bestätigung
Vorschau ansehen (Probelauf)
Klick auf Vorschau, um einen Probelauf zu starten, ohne etwas zu speichern. Du siehst die Zähler Gesamt, Neu, Aktualisiert, Übersprungen und Fehler sowie die Details der ersten fünf fehlerhaften Zeilen, falls es welche gibt („Zeile N: …“). Nach der Vorschau heißt die Schaltfläche Vorschau neu berechnen, falls du den Inhalt oder den Modus änderst.
Importieren (echter Lauf)
Passt die Vorschau, klick auf Importieren, um die Änderungen anzuwenden. Am Ende siehst du den Block Import abgeschlossen mit dem tatsächlichen Ergebnis: Hinzugefügt, Aktualisiert, Übersprungen und Fehler. Die Liste unter Meine Zutaten wird neu geladen, sobald du diesen Tab öffnest: Warst du schon darin, wechsle zu Katalog und zurück oder lade die Seite neu, um die Änderungen zu sehen.
Was aus jeder Zeile importiert wird
Erkannt werden diese Felder: name (Pflicht), category, subcategory, brand, supplier, customCode, pricePerKg, baseUnit (Standard g), densityGPerMl, weightPerUnitG, die 12 Nährwerte (water, fat, saturatedFat, carbs, sugars, protein, fiber, salt, kcalPer100g, cocoaButterFat, totalCocoa, alcohol), allergens und notes. Bei den Kopfzeilen spielt Groß- und Kleinschreibung keine Rolle, und einige Aliasse werden akzeptiert (customCode/custom_code, baseUnit/base_unit/unit). Jede Spalte, die nicht in der Liste steht, wird ohne Fehler ignoriert.
Fehler, die du sehen kannst:
- Eine Zeile ohne Namen wird übersprungen und als „Zeile N: Name fehlt“ gemeldet.
- Eine fehlerhaft aufgebaute Datei wird komplett abgelehnt: „Die CSV-Datei ist leer oder enthält keine Zeilen“, „Ungültiges JSON: …“ oder „JSON: Array ‚ingredients‘ nicht gefunden“.
Diese Meldungen schickt der Server in der Sprache der Oberfläche. Bei „Ungültiges JSON: …“ erscheint das technische Detail nach dem Doppelpunkt so, wie der JSON-Parser es liefert, meist auf Englisch.
Exportieren
Im Tab Exportieren („Lade deinen eigenen Katalog herunter. Das JSON-Format erhält komplexe Strukturen (macros, allergens); CSV eignet sich ideal zum Bearbeiten in Excel/Sheets.“) hast du zwei direkte Downloads. Exportiert werden nur deine aktiven Zutaten (gelöschte nicht).
Als JSON exportieren
„Vollständiges Format für Backups oder den Umzug in eine andere Instanz.“ Lädt das vollständige Datenblatt jeder Zutat so herunter, wie es gespeichert ist, einschließlich dessen, was die CSV-Datei nicht abbildet: Mikronährstoffe (die in macros stecken), alternative Namen und eigene Felder. Das ist das empfohlene Format für Sicherungskopien. Die Struktur:
{
"version": 1,
"exportedAt": "2026-06-01T…Z",
"count": 12,
"ingredients": [
{ "id": "ci_…", "name": "…", "macros": { "fat": 42, "vitaminE": 5 }, "allergens": ["nuts"], "altNames": [], "customFields": {} }
]
}Jedes Objekt in ingredients ist das vollständige Datenblatt der Zutat (hier gekürzt).
Beim erneuten Import eines JSON (zum Beispiel für den Umzug in ein anderes Konto im Modus Anlegen oder aktualisieren) werden die Stammdaten, die Makro- und Mikronährstoffe und die Allergene wiederhergestellt (ein "allergens": null kommt als nicht deklariert zurück; fehlt der Schlüssel allergens, gilt das Datenblatt als ohne Allergene), nicht aber die alternativen Namen, die eigenen Felder und die Angabe zu Konservierungsstoffen, die du neu eintragen müsstest. Für ein vollständiges Backup bewahr die ursprüngliche JSON-Datei auf.
Als CSV exportieren
„Einfache Tabelle zum Öffnen in Excel/Sheets/Numbers.“ Lädt eine einfache Tabelle herunter (Datei custom-ingredients-JJJJ-MM-TT.csv), ideal zum Prüfen oder Bearbeiten in einer Tabellenkalkulation. Die CSV-Datei enthält die Makronährstoffe, aber nicht die Mikronährstoffe (dafür nimmst du JSON).
CSV-Spalten
Der aufklappbare Bereich CSV-Spalten im Fenster listet die 25 Spalten der exportierten Datei in dieser Reihenfolge:
id, name, category, subcategory, brand, supplier, customCode, pricePerKg, baseUnit, densityGPerMl, weightPerUnitG, water, fat, saturatedFat, carbs, sugars, protein, fiber, salt, kcalPer100g, cocoaButterFat, totalCocoa, alcohol, allergens, notes
Die Spalte allergens ist eine durch Semikolon getrennte Liste (zum Beispiel gluten;milk); sie bleibt leer, wenn das Datenblatt keine Allergene hat, und enthält undeclared, wenn sie nicht deklariert sind. Der einzige Unterschied zur Importvorlage ist die Spalte id (beim Export vorhanden, beim Import ignoriert).
Hinweise und Grenzen
- Hin und zurück nach Name. Exportieren und wieder importieren funktioniert: Der Abgleich erfolgt nach Name, die Spalte
idder exportierten CSV-Datei brauchst du beim erneuten Import also nicht. - CSV oder JSON. Nimm CSV zum schnellen Bearbeiten in einer Tabellenkalkulation (Makronährstoffe, ohne Mikronährstoffe); nimm JSON für Sicherungskopien: Es ist das einzige Format mit den Mikronährstoffen. Beim erneuten Import erhält JSON Makro- und Mikronährstoffe, aber nicht die alternativen Namen und die eigenen Felder.
- Größe. Es gibt keine Zeilenobergrenze, die Anfrage ist aber auf rund 5 MB begrenzt. Teil sehr große Kataloge auf mehrere Importe auf.
- Datenschutz. Alles betrifft nur den Katalog deines Kontos; weder Import noch Export berühren den öffentlichen Katalog.