Seite 1 von 1

Frage zum Infilter-Parameter

Verfasst: Mo 12. Aug 2019, 18:11
von LeonidB
Hallo Allerseits!
Habe eine Frage zum "Infilter"-Parameter. Ein (selbstgeschriebenes) Programm erzeugt eine CSV-Datei, deren Spalten wie folgt aufgebaut sind:

Code: Alles auswählen

ascii;datum;datum;zahl;zahl;zahl;zahl;zahl;ascii;ascii;zahl;zahl;ascii;zahl;ascii;zahl;ascii;zahl;ascii;zahl;ascii
Alle Werte sind semikolongetrennt, die erste Zeile enthält Spaltenüberschriften, jeweils in einfache ' eingeschlossen.

Nachdem die Datei generiert ist, wird die CSV-Datei via Befehlszeile von LO geöffnet und soll dann vom User in LO weiter bearbeitet werden. Wenn meine Vermutung richtig ist, kann ich mit dem "Infilter"-Parameter LO die jeweiligen Datenformate anzeigen, so dass nicht alles nur als Text interpretiert wird. Wer kann mir helfen, den "Infilter"-Parameter korrekt zu formulieren?

Re: Frage zum Infilter-Parameter

Verfasst: Di 13. Aug 2019, 21:37
von Pit Zyclade
Bist du nicht im falschen Unterforum???
LO->Programmierung wäre richtiger.

Gelöst (wahrscheinlich): Frage zum Infilter-Parameter

Verfasst: Di 13. Aug 2019, 23:01
von LeonidB
Servus!

Da es sich hierbei um einen Befehlszeilenparameter handelt, wie z. B. auch ein Dateiname ein Befehlszeilenparameter darstellt, bin ich nicht davon ausgegangen, dass man hier von Programmierung sprechen muss. Aber egal!

Habe folgendes herausgefunden: Will man eine CSV-Datei öffnen, von der man den Aufbau kennt, erspart dieser Importfilter einiges an Nachbearbeitung in LO. In meinem Fall generiert ein Programm eine CSV-Datei (weil ich nicht weiß, wie man eine LO-Calc-Datei programmiert), deren Aufbau beispielsweise so aussieht:
1. Zeile Spaltenüberschriften
2. und folgende Zeilen sind alles Werte, und zwar in dieser Reihenfolge: Text,Datum,Zahl,Text,Zahl,Text,Zahl

Dann müsste der Infilter-Parameter so aussehen:

Code: Alles auswählen

--infilter=csv:"59/9,34,1,1,1/2/2/4/3/1/4/1/5/2/6/1/7/2/8/1,3072,true,false"

wobei die Werte folgendes bedeuten:
59/9 Trennung per Semikolon und/oder Tab
34 Trennung für Texte (z. B. Spaltenüberschriften aus Text müssen je Zelle in "" Gänsefüßchen eingeschlossen werden). ISt der jeweilige ASCII-Code für das betreffende Trennzeichen
1 (die erste 1 im Beispiel) steht für den Zeichensatz "Windows-1252/WinLatin 1 (Western)"
1 (die zweite) steht für die Zeilennummer, 1 = oberste Zeile in der Tabelle
dann folgen für jede Spalte von links nach rechts folgende Paare: Spaltennummer/Format (/S/F/S/F/S/F/... für weitere Spalten). Im Beispiel: 1/2 = erste Spalte, Wert = Text /2/4 (zweite Spalte, Wert = Datum DD.MM.YY), 3/1 = 3. Spalte, Format = Standard, usw.
zum Ende dann 3072 für Formate in deutsch(Deutschland) und 2 Bool-Werte, der erste steht für "Quoted field as text" = true, andernfalls false, der letzte für "Detect special numbers", wenn ja, dann true, sonst false.

Alle diese Einstellungen macht man auch, wenn man in LO eine CSV-Datei öffnet, dann erscheint ein Fenster, in dem genau diese Daten abgefragt werden (wenn nicht als infilter-parameter schon gegeben.

Das obige habe ich mir mehr oder weniger aus mehreren Quellen, zum Teil sehr alten, zusammengereimt und mag unvollständig oder fehlerhaft sein, für meine Zwecke funktioniert es. Vielleicht hilft es ja jemandem weiter.

Horrido!

Re: Frage zum Infilter-Parameter

Verfasst: Di 13. Aug 2019, 23:02
von Wanderer
Hallo,

Ich habe den Link eben schon Mal angegeben, aber
unter diesem Wiki-Link
https://wiki.openoffice.org/wiki/Docume ... er_Options
finden sich als Parameter 5 auch die Typ-Optionen für den csv-Import. Beim Datum musst Du auch die Reihenfolge festlegen damit klar ist, wass 10/11/12 bedeutet.

Mfg, Jörn