Zum Hauptinhalt springen

CSV-Eingabe

Die CLI liest CSV-Dateien mit dem Mapping, das Sie über YAML oder --col-*-Optionen bereitstellen.

Header Mode

Standardmäßig erwartet die CLI eine Headerzeile und Mappings verwenden Headernamen:

columns:
vatId: "VatId"
name: "CompanyName"

Beispiel-CSV:

VatId;CompanyName;Street;PostalCode;City
DE123456789;Example GmbH;Main Street 1;80331;Munich

Die CLI validiert, dass jede gemappte Spalte im Header existiert.

No-Header Mode

Verwenden Sie --no-header, wenn die CSV keine Headerzeile hat:

optimus check customers.csv --no-header --col-vat-id 1 --col-name 2 --standard

Im No-Header Mode müssen gemappte Spalten 1-basierte Indizes sein:

columns:
vatId: "1"
name: "2"

Führen Sie nach Änderungen an No-Header-Mappings --dry-run aus. Die Vorschau zeigt die ersten 5 prüfbaren Zeilen, die an die API gesendet würden, sodass Sie bestätigen können, dass jeder Index auf den erwarteten Wert zeigt.

Trennzeichen

Setzen Sie das Eingabetrennzeichen bei Bedarf explizit:

optimus check customers.csv --map mapping.yml --in-delimiter ";"

Oder in YAML:

input:
delimiter: ";"

Wenn kein Trennzeichen über CLI oder YAML konfiguriert ist, kann der Reader es automatisch erkennen.

Encodings

Unterstützte Eingabe-Encodings sind:

  • utf-8
  • windows-1252
  • iso-8859-1

Setzen Sie das Encoding mit:

optimus check customers.csv --map mapping.yml --standard --in-encoding windows-1252

Oder:

input:
encoding: windows-1252

Zeilen Vor Dem Header Überspringen

Verwenden Sie --skip-rows, wenn die Datei Metadatenzeilen vor dem Header hat:

optimus check customers.csv --map mapping.yml --standard --skip-rows 2

YAML-Äquivalent:

input:
skipRows: 2

Übersprungene Datensätze

Standardmäßig werden Zeilen mit leeren USt-IdNrn. übersprungen:

filter:
skipEmptyVatId: true

Sie können auch USt-IdNrn. überspringen, die einem regulären Ausdruck entsprechen:

filter:
skipPattern: "^TEST"

Übersprungene Zeilen werden weiterhin in die Ergebnis-CSV geschrieben, mit vat_id_status auf SKIPPED.

Passthrough-Spalten

Verwenden Sie customColumns für lokale Werte, die Sie in der Ergebnis-CSV behalten möchten:

customColumns:
customer_number: "CustomerNumber"

Passthrough-Werte werden gelesen, bevor Zeilenfilter angewendet werden. Dadurch können übersprungene Zeilen weiterhin Ihre lokalen Kennungen in der Ergebnis-CSV enthalten.