Frage zum Infilter-Parameter

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
LeonidB
Beiträge: 2
Registriert: Mo 12. Aug 2019, 17:55

Frage zum Infilter-Parameter

Beitrag von LeonidB » Mo 12. Aug 2019, 18:11

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?

Pit Zyclade
Beiträge: 1515
Registriert: Mo 12. Nov 2012, 16:59

Re: Frage zum Infilter-Parameter

Beitrag von Pit Zyclade » Di 13. Aug 2019, 21:37

Bist du nicht im falschen Unterforum???
LO->Programmierung wäre richtiger.
LO 6.2.7.1 (x64) / AOO 4.1.5 / Windows 7 prof. 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

LeonidB
Beiträge: 2
Registriert: Mo 12. Aug 2019, 17:55

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

Beitrag von LeonidB » Di 13. Aug 2019, 23:01

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!

Wanderer
Beiträge: 295
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Frage zum Infilter-Parameter

Beitrag von Wanderer » Di 13. Aug 2019, 23:02

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
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Antworten