Seite 1 von 1
[gelöst] csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 09:48
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
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 10:38
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
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 11:33
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
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 11:51
von komma4
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 11:58
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
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 13:00
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
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 13:12
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
[gelöst] Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 14:15
von Tomizz
OK, entsprechend angepasst müsste es dann so aussehen, richtig??
Ich kann mich nur wiederholen:
So funktioniert es NICHT!!! Hatte ich alles vorher schon durchprobiert.
Re: csv-Datei in Calc importieren
Verfasst: Do, 10.11.2011 14:57
von Stephan
Ich kann mich nur wiederholen: So funktioniert es NICHT!!! Hatte ich alles vorher schon durchprobiert.
Ja, stimmt.
Gruß
Stephan