Konvertierung von Dateien

spezielle Probleme mit AOO/LO unter Windows

Moderator: Moderatoren

Reick
Beiträge: 3
Registriert: Mo, 26.09.2005 10:42

Konvertierung von Dateien

Beitrag von Reick »

Hallo,
aus einem VB-Programm heraus möchte ich OO im Hintergrund nutzen, um dort eine Datei (z.B. im xls-Format) einzulesen und sie wieder im txt-/csv-Format auszugeben. Trotz meiner geringen Kenntnisse funktioniert das im Prinzip, allerdings fehlen mir die Steuerungsmöglichkeiten, die bei der manuellen Abarbeitung im Formular „Textformat“ auswählbar sind. Mit welchen Schlüsselnamen und –werten kann ich diese Parameter ansprechen bzw. wo finde ich Informationen dazu?
Vielen Dank
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Reick,

die Methode, die du verwendest, sollte storeToURL(sURL, arg()) sein. Die mögliche Argumenten-Liste findest du im Modul com.sun.star.document.MediaDescriptor, wichtig sind insbesondere FilterName und FilterOptions sowie eventuell FilterData.
Die entsprechenden filternamen sind leider nicht so einfach zu finden - da musst du die Dateien*.xcu Dateien im Unterverezeichnis "TypeDetection/Filters" manuell auswerten. Aber du brauchst ja nur den CVS Filter: interner Name: "Text - txt - cvs (StarCalc)" und der braucht zwingend noch die Eigenschaft "FilterOptions".
Als Wert wird hier ein String mit fünf Parametern (durch Komma getrennt) übergeben, also in der Art

Code: Alles auswählen

...
arg(1).name = FilterOptions
arg(1).value = "44,34,0,1,1/2/1/3/1"  'drei Spalten
...
Bleibt also die Auflösung der fünf Parameter:
Ich zitier mal aus meinem OOo Basic-Lehrbuch (erscheint demnaächst):
*********
FilterOptions. Als Wert wird hier ein String übergeben, dessen Inhalt fünf Platzhalter umfasst, getrennt durch Kommas (,). Jeder Platzhalter kann diverse Werte aufnehmen, dann getrennt durch Slashes (/). Dabei orientiert sich dieser String an den Vorgaben des CSV-Dateiformates. Im Einzelnen bedeuten:
Platzhalter - Beschreibung

1 - Der Feldseparator, durch den die Werte in der Datei getrennt sind, als ASCII-Wert. Wichtige Werte: 44 (Komma), 32 (Leerzeichen), 9 (Tab)

2 - Der ASCII-Wert des Zeichens, das Texte in der CSV-Datei begrenzt. Wichtige Werte: doppelte Hochkommas – 34, einfache Hochkommas – 39

3 - Der verwendete Zeichensatz. Die Null (0) repräsentiert den Systemzeichensatz und sollte immer verwendet werden.

4 - Spezifiziert die erste einzulesende Zeile der Datei. Erwartet wird ein numerischer Wert. Um die Datei bei der ersten Zeile beginnend einzulesen, wäre der Wert = 1.

5 - Spezifiziert das Format jeder Spalte der einzulesenden Werte. Siehe den nächsten Abschnitt.

Mit dem fünften Platzhalter lassen sich die entsprechenden Formate der jeweiligen Spalten festlegen, und zwar von vorn nach hinten, für jede Spalte extra:
<Spalten-Nummer>/<Format>/<Spalten-Nummer>/<Format>/…
Die Spalten-Nummer wird von vorn bestimmt. Als Format stehen folgende Werte zur Verfügung:
Format - Beschreibung
1 - Standard-Format (hier versucht das Programm selbst, das Format zu erkennen)
2 Text
3 Datum des Formates MM/DD/YY (englische Schreibweise)
4 Datum des Formates DD/MM/YY (kontinentale Schreibweise)
5 Datum des Formates YY/MM/DD (Iso-Schreibweise)

9 Nicht importieren. Feld (Spalte) wird übergangen.
10 Importiert eine Zahl in englischer Schreibweise (Dezimalseparator Punkt, Tausendertrennzeichen Komma), nicht in lokalisierter Form

**************

Ich hoffe, es hilft dir ersteinmal weiter.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Reick
Beiträge: 3
Registriert: Mo, 26.09.2005 10:42

Dateien konvertieren

Beitrag von Reick »

Hallo Thomas,
das war's.
Herzlichen Dank
Reick
Antworten