Speichern unter - als CSV

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

Moderator: Moderatoren

Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

Speichern unter - als CSV

Beitrag von Hömmelmann »

Hallo alle zusammen,

ich habe da ein Problem:

Ich möchte in meinem Macro eine geöffnete Calc-Tabelle als CSV-Datei speichern.
In den Starbasic-FAQ habe ich dazu etwas gefunden. Das funktioniert aber nicht so richtig. Die Datei hat dann zwar die Endung .csv, ist aber keine reine Text-Datei. Ich vermute, die Filtereinstellungen:

"59/9,34,IBMPC_850,1,1/1/1/1/1/1/1/1"

sind irgendwie nicht richtig dafür.

Kann mir da jemand weiterhelfen. Mein bischen Sachverstand reicht mal wieder nciht aus.


Danke,

Friedhelm
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Friedhelm

Zeichne dir doch einfach die Routine '->Speichern als.......-csv' in einem seperaten Makro auf , dort findest du deine eigenen Filtereinstellungen wieder.

Gruß Karo
Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

hat funktioniert

Beitrag von Hömmelmann »

Hallo und recht herzlichen Dank für die schnelle Antwort.

Ich kann damit zwar die Speicherroutine aus den FAQ nicht nutzen, aber die aufgezeichnete funktioniert auch.


Gruß,


Friedhelm
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Friedhelm,
"59/9,34,IBMPC_850,1,1/1/1/1/1/1/1/1"
Das bedeutet:
1. Feldseperator ist ein Semikolon (Zeichen 059), (was allerdings die /9 dahinter sollen, da bin ich überfragt.
2. Texte werden in doppelte Hochkommas (Zeichen 034) eingeschlossen (Texttrenner).
3. Der zu verwendente Zeichensatz ist "IBMPC_850", in der Regel würde hier eine "0" (Null) genügen, dann würde der Zeichensatz des aktuellen Systems genutzt.
4. Die erste einzulesende Zeile ist die 1.
5. Es werden acht Spalten eingelesen, und zwar im Standard-Format (dabei versucht das Programm selbst, das Format des Inhaltes zu erkennen).

Du sagst, das was rauskommt, ist keine reine Textdatei?? Was denn sonst? Kannst du das näher spezifizieren?

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

Beitrag von Hömmelmann »

Hallo,

danke für die Erläuterungen.

Die Datei wird in einem komprimierten (gezipt) Format gespeichert, also wie eine sxc oder ods.
Beim Einlesen wird auch der Filter nicht aufgerufen, sondern die Datei wird sofort angezeigt.


Gruß, Friedhelm
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Freidhelm,

na, dann poste mal den kompletten Code. Da ist wohl insgesamt etwas "faul".

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

Beitrag von Hömmelmann »

Hallo,

den Code habe ich den FAQ entnommen.
http://www.dannenhoefer.de/faqstarbasic ... eroptionen

Außer Pfadangabe und Dateinamen hatte ich nichts verändert.


Gruß, Friedhelm
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Friedhelm,

tia, man soll nicht immer alles kritiklos übernehmen. Auch Fachleute machen Fehler - oder zeigen nur wichtige Hauptpunkte. Jedenfalls fehlt der Filternahme im Code, das kann nicht gehen. Hier wäre der verbesserte - und getestete Code:

Code: Alles auswählen

Sub Speichern
Dim myProps(1) as New com.sun.star.beans.PropertyValue
sUrl= "file:///D:/daten/puffer/test_heute.csv"
myProps(0).Name = "FilterName"
myProps(0).value = "Text - txt - csv (StarCalc)"
myProps(1).Name="FilterOptions"
myProps(1).Value ="59/9,34,IBMPC_850,1,1/1/1/1/1/1/1/1" 'string mit den Optionen
myDoc = thisComponent
myDoc.storeAsUrl(sUrl,myProps())
End Sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

Klappt jetzt super

Beitrag von Hömmelmann »

Hallo,

so ist das: Kleine Ursache, große Wirkung.

Danke, jetzt habe ich eine Speicherroutine, die genau das macht was sie soll.


Friedhelm
Antworten