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
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