von F3K Total » Fr, 20.09.2013 18:04
Hi,
Karsten Hahn hat geschrieben:Lässt sich ein solches Verhalten prinzipiell erreichen, möglicherweise mit einem Makro?
Ja, mit einem Makro geht das. Dafür brauchst Du Deine Filteroptionen, die du beim Speichern als .csv einstellst.
Daher in zwei Schritten:
1.) Einmal ein Makro während des Speichervorganges, wie du es gewohnt bist, aufnehmen. Die Filteroptionen werden aufgezeichnet.
2.) Ein eigenes Makro unter Verwendung dieser Optionen anlegen.
Zu 1.)
- Calc Datei öffnen
- Extras/Makros/Makro aufzeichnen
- Datei/Speichern unter -> .csv -> Haken bei Filtereinstellungen bearbeiten -> Speichern ->ggf. aktuelles Format beibehalten
- Filteroptionen einstellen wie benötigt -> OK -> OK
- Aufzeichnung beenden -> Neues Modul -> Main überschreiben -> Speichern
Zu 2.)
- ALT+F11 drücken -> zu Main navigieren -> Bearbeiten
- Du solltest jetzt etwa dies sehen:
Code: Alles auswählen
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/<Dein User>/Desktop/Export_CSV.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "9,34,ANSI,1,,0,false,true,true"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub
- Davon sind diese Zeilen weiterzuverwenden
Code: Alles auswählen
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/<Dein User>/Desktop/Tabelle1.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "9,34,ANSI,1,,0,false,true,true"
- Ändere sie wie folgt:
Code: Alles auswählen
sub S_Save_as_CSV
dim args1(1) as new com.sun.star.beans.PropertyValue
sUrl = "file:///C:/Users/<Dein User>/Desktop/Tabelle1.csv"
args1(0).Name = "FilterName"
args1(0).Value = "Text - txt - csv (StarCalc)"
args1(1).Name = "FilterOptions"
args1(1).Value = "9,34,ANSI,1,,0,false,true,true"
thiscomponent.storetourl(surl,args1())
msgbox "Jepp, .csv gespeichert"
end sub
- Wenn Du dieses Makro aus der originalen .ods-Datei ausführst, wird die aktuelle Tabelle als Tabelle1.csv mit deinen Filtereinstellungen auf den Desktop gespeichert und die .ods bleibt geöffnet
Viel Erfolg
Gruß R
Hi,
[quote="Karsten Hahn"]Lässt sich ein solches Verhalten prinzipiell erreichen, möglicherweise mit einem Makro?[/quote]
Ja, mit einem Makro geht das. Dafür brauchst Du Deine Filteroptionen, die du beim Speichern als .csv einstellst.
Daher in zwei Schritten:
1.) Einmal ein Makro während des Speichervorganges, wie du es gewohnt bist, aufnehmen. Die Filteroptionen werden aufgezeichnet.
2.) Ein eigenes Makro unter Verwendung dieser Optionen anlegen.
Zu 1.)
[list][*]Calc Datei öffnen
[*]Extras/Makros/Makro aufzeichnen
[*]Datei/Speichern unter -> .csv -> Haken bei Filtereinstellungen bearbeiten -> Speichern ->ggf. aktuelles Format beibehalten
[*]Filteroptionen einstellen wie benötigt -> OK -> OK
[*]Aufzeichnung beenden -> Neues Modul -> Main überschreiben -> Speichern[/list]
Zu 2.)
[list][*]ALT+F11 drücken -> zu Main navigieren -> Bearbeiten
[*]Du solltest jetzt etwa dies sehen:[code]sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/<Dein User>/Desktop/Export_CSV.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "9,34,ANSI,1,,0,false,true,true"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub[/code]
[*]Davon sind diese Zeilen weiterzuverwenden[code]dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/<Dein User>/Desktop/Tabelle1.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "9,34,ANSI,1,,0,false,true,true"[/code]
[*]Ändere sie wie folgt:[code]sub S_Save_as_CSV
dim args1(1) as new com.sun.star.beans.PropertyValue
sUrl = "file:///C:/Users/<Dein User>/Desktop/Tabelle1.csv"
args1(0).Name = "FilterName"
args1(0).Value = "Text - txt - csv (StarCalc)"
args1(1).Name = "FilterOptions"
args1(1).Value = "9,34,ANSI,1,,0,false,true,true"
thiscomponent.storetourl(surl,args1())
msgbox "Jepp, .csv gespeichert"
end sub[/code]
[*]Wenn Du dieses Makro aus der originalen .ods-Datei ausführst, wird die aktuelle Tabelle als Tabelle1.csv mit deinen Filtereinstellungen auf den Desktop gespeichert und die .ods bleibt geöffnet[/list]
Viel Erfolg
Gruß R