[gelöst] csv-Datei in Calc importieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Tomizz
*
Beiträge: 16
Registriert: Di, 05.10.2004 08:04

[gelöst] csv-Datei in Calc importieren

Beitrag von Tomizz »

Hallo Leute,

ich möchte gern über ein Makro mehrere csv-Dateien in OO-Calc öffnen (Win XP, OO 3.2.1). Das funktioniert grundsätzlich schon. Allerdings soll die Datei mit dem Unicode-Zeichensatz UTF-8 importiert werden. Zudem sollen die Standard-Trennoptionen geändert werden, so dass nicht nach Kommas, sondern nach Tabulatoren und Semikolons getrennt wird. Ich bleibe an folgender Stelle hängen:

Code: Alles auswählen

FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="scalc: Text - txt - csv (StarOffice Calc)"
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, FileProperties())
Dieses ist ein Beispiel aus dem „StarOffice 8 Programmierhandbuch für BASIC“ von Oracle. Hier soll eigentlich eine Datei als Calc-Dokument geöffnet werden. Die angegeben Optionen erzeugen aber ein Textdokument. Die Optionen der Methode loadComponentFromURL werden zwar aufgezählt (z. B. CharacterSet (String): definiert, auf welchem Zeichensatz ein Dokument basiert), aber wie man das konkret einbindet, wird nicht erklärt. Genauso ist es mit den Filternamen und Filteroptionen. Es wird auf eine Datei TypeDetection.xml verwiesen, die ich aber nicht finden kann. Ich habe leider auch keine Beispielcodes dazu finden können.

Tomizz
Zuletzt geändert von Tomizz am Fr, 11.11.2011 07:34, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: csv-Datei in Calc importieren

Beitrag von Stephan »

siehe unter:
viewtopic.php?f=18&t=1553

das Dokument:
http://api.openoffice.org/basic/man/tut ... torial.pdf

dort Kapitel 4.2.1

der zu übergebende String, innerhalb des Gesamtparameters, für UTF-8 ist, wie auch aus dem entsprechenden Importdialog manuell nachvollziehbar, "Unicode (UTF-8)"



Gruß
Stephan
Tomizz
*
Beiträge: 16
Registriert: Di, 05.10.2004 08:04

Re: csv-Datei in Calc importieren

Beitrag von Tomizz »

Vielen Dank erstmal. Soweit hatte ich das mit diesen Token inzwischen auch herausbekommen. Nur mit der Zeichensatzkennung funktioniert es nicht. Was gebe ich genau bei Value an der 3. Position ein? Für jeden Zeichensatz gibt es ACT-Codepagewerte, die eigentlich eingetragen werden müssten. Der für UTF-8 ist 65001. Funktioniert aber nicht:

Code: Alles auswählen

FileProperties(1).Name = "FilterOptions"
FileProperties(1).Value ="9/59,34,65001,1"
Andere Nummern liefern andere Sonderzeichen, aber nicht die gewünschten Zeichen (z. B. Umlaute). Was muss konkret anstelle der 65001 eingegeben werden?

Tomizz
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: csv-Datei in Calc importieren

Beitrag von komma4 »

Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: csv-Datei in Calc importieren

Beitrag von Stephan »

Nur mit der Zeichensatzkennung funktioniert es nicht. Was gebe ich genau bei Value an der 3. Position ein?
WARUM WOHL habe ich EXTRA geschrieben:
der zu übergebende String, innerhalb des Gesamtparameters, für UTF-8 ist, wie auch aus dem entsprechenden Importdialog manuell nachvollziehbar, "Unicode (UTF-8)"
Für jeden Zeichensatz gibt es ACT-Codepagewerte, die eigentlich eingetragen werden müssten.
Na wenn Du meinst - aber warum fragst Du dann wenn Du es ohnehin selbst besser weist.

Bei mir läuft das Ganze jedenfalls äquivalent zum Beispiel im angegebennen PDF mit dem entsprechenden String, im Beispiel ist der "STANDARD" und hier ist er wie bereits benannt "Unicode (UTF-8)" ...


Gruß
Stephan
Tomizz
*
Beiträge: 16
Registriert: Di, 05.10.2004 08:04

Re: csv-Datei in Calc importieren

Beitrag von Tomizz »

Vielen Dank an komma4 für den Link (die anderen Kommentare waren leider weniger hilfreich). Es muss die Nummer 76 eingefügt werden. Vielleicht sieht das auf anderen Rechnern und Systemen anders aus. Mit STANDARD hat es bei mir eben NICHT funktioniert. Mehr wollte ich doch gar nicht wissen. Das ganze muss also so aussehen:

Code: Alles auswählen

FileProperties(1).Name = "FilterOptions"
FileProperties(1).Value ="9/59,34,76,1"
Tomizz
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: csv-Datei in Calc importieren

Beitrag von Stephan »

Mit STANDARD hat es bei mir eben NICHT funktioniert.
Sag mal bin ich denn nun blöde? Ich schrieb doch bereits das:

"im Beispiel ist der "STANDARD" und hier ist er wie bereits benannt "Unicode (UTF-8)" "

also NICHT wie im Beispiel:

Code: Alles auswählen

mFileProperties(1).Value = "44,34,SYSTEM,1,1/1/1/1/1/1/1/1"
sondern:

Code: Alles auswählen

mFileProperties(1).Value = "44,34,Unicode (UTF-8),1,1/1/1/1/1/1/1/1"
nur eben angepasst auf Deine weiteren konkreten Anforderungen.


Gruß
Stephan
Tomizz
*
Beiträge: 16
Registriert: Di, 05.10.2004 08:04

[gelöst] Re: csv-Datei in Calc importieren

Beitrag von Tomizz »

OK, entsprechend angepasst müsste es dann so aussehen, richtig??

Code: Alles auswählen

FileProperties(1).Value = "9/59,34,Unicode (UTF-8),1"
Ich kann mich nur wiederholen: So funktioniert es NICHT!!! Hatte ich alles vorher schon durchprobiert.
Zuletzt geändert von Tomizz am Fr, 11.11.2011 07:33, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: csv-Datei in Calc importieren

Beitrag von Stephan »

Ich kann mich nur wiederholen: So funktioniert es NICHT!!! Hatte ich alles vorher schon durchprobiert.
Ja, stimmt.



Gruß
Stephan
Antworten