sxc als .csv mit Filteroptionen per Marko speichern

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: sxc als .csv mit Filteroptionen per Marko speichern

von twist » Mi, 29.12.2004 20:19

Hi, vielen Dank für den Tip, hat funktioniert.

Hier das Makro, es speichert zuerst die Änderungen in der Datei, danach werden die Kopfzeilen aus den beiden Tabellen gelöscht. Anschließend werden die beiden Tabellen jeweils als eine Datei in c:\exporte\... mit Feldtrenner {tab} und Texttrenner | exportiert und OpenOffice schließt sich.


===============================================
sub csv_speichern
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
dim oDocument As Object
oDocument = ThisComponent

rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

oDocument.store(true)

Dim Doc As Object
Dim Sheet As Object
Dim NewColumn As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Sheet.Rows.removeByIndex(0, 1)
Sheet = Doc.Sheets(1)
Sheet.Rows.removeByIndex(0, 1)

rem ----------------------------------------------------------------------
Dim mFileProperties(1) As New com.sun.star.beans.PropertyValue
Dim oDoc as Object, sURL as String
Dim aFileProperties() as New com.sun.star.beans.propertyValue
oDoc = ThisComponent
sUrl = "file:///c:/exporte/tabelle1.csv"
mFileProperties(0).Name = "FilterName"
mFileProperties(0).Value = "Text - txt - csv (StarCalc)"
mFileProperties(1).Name = "FilterFlags"
mFileProperties(1).Value = "9,124,SYSTEM,2,1/1/2/1/3/1/4/1/5/1/6/1"
oDoc.storeAsUrl( sUrl, mFileProperties())



rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())

rem ----------------------------------------------------------------------
rem Dim mFileProperties(2) As New com.sun.star.beans.propertyValue
rem Dim oDoc as Object, sURL as String
rem Dim aFileProperties() as New com.sun.star.beans.propertyValue
oDoc = ThisComponent
sUrl = "file:///c:/exporte/tabelle2.csv"
mFileProperties(0).Name = "FilterName"
mFileProperties(0).Value = "Text - txt - csv (StarCalc)"
mFileProperties(1).Name = "FilterFlags"
mFileProperties(1).Value = "9,124,SYSTEM,2,1/1/2/1/3/1/4/1/5/1/6/1"
oDoc.storeAsUrl( sUrl, mFileProperties())

document.close(true)

end sub

von Stephan » Do, 23.12.2004 16:40

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

Seite 41ff. sollte helfen.

Gruß
Stephan

sxc als .csv mit Filteroptionen per Marko speichern

von twist » Do, 23.12.2004 16:33

Hallo habe da ein kleines Problem, ich versuche eine Calc Datei mit 2 Tabellen in jeweils eine .csv Datei zu speichern. Das Funktioniert soweit auch, allerdings müssen die Felder mit {TAB} getrennt sein und der Text mit | getrennt . Diese Einstellung bekomme ich im Makro nicht hin. Soweit ich das ganze in den Dokus verstanden habe geht das mit "FilterFlags" allerdings hab ich nirgendwo in den ganzen Dokus was dazu gefunden.

Hier mal mein Makro:

sub csv_speichern
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Export/tabelle1.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "URL"
args3(0).Value = "file:///C:/Export/tabelle2.csv"
args3(1).Name = "FilterName"
args3(1).Value = "Text - txt - csv (StarCalc)"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args3())


end sub

Für eine kurze anregung oder einen Link wäre ich sehr dankbar

Twist

Nach oben