Datei-Konvertierung von Calc nach CVS
Verfasst: Do, 03.09.2009 15:06
Hallo,
ich bin Anfänger in der Makro-Programmierung und benötige noch etwas Unterstützung. Meine beide Makros ermöglichen die Konvertierung einer Calc-Datei in eine CVS-Datei. Allerdings wird dabei nur die zuletzt aktive Tabelle konvertiert. Ich möchte aber die Inhalte einzelner bestimmter Tabellen zusammenfassen und gemeinsam in dieser CSV-Datei speichern. Welche Code-Erweiterungen sind notwendig?
Danke vorab.
Sub CSV_Konvertierung
Dim sURL as String
Dim sPfad as String
Dim sDatei as String
Dim Args(1) as new com.sun.star.beans.PropertyValue
Dim bDateiCheck as Boolean
' Artikel.sxc im Hintergrund öffnen:
sURL = ConvertToURL(sQuelldatei)
Args(0).Name = "Hidden"
Args(0).Value = True
oDokument = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
'Kontrolle, ob die korrekte Datei verwendet wird:
sPfad = Right(sURL, 11)
if LCase(sPfad)="artikel.sxc" or LCase(sPfad)="artikel.ods" then
bDateiCheck = true
else
bDateiCheck = false
end if
' Daten als CSV-Datei abspeichern
if bDateiCheck=true then
sPfad = Left(sURL, Len(sURL)-4)
sDatei = sPfad + ".csv"
Datei_Speichern(sDatei, "Text - txt - csv (StarCalc)")
else
MsgBox("Es wurde eine falsche Datei geöffnet.")
end if
' Artikel.sxc wieder schließen
oDokument.close(false)
End Sub
'---------------------------------------------------------------------------
' Dieses Makro speichert eine Datei im jeweiligen Format ab (Datei-Export)
'---------------------------------------------------------------------------
Sub Datei_Speichern(sDateiURL as String, sFilterName as String)
Dim oFrame as Object
Dim oDaten as Object
Dim URL as new com.sun.star.util.URL
Dim Args(2) as new com.sun.star.beans.PropertyValue
oFrame = oDokument.getCurrentController().getFrame()
'oFrame = oDokument.Sheets().getByName("Tabelle 01")
URL.Complete = ".uno:SaveAs"
CreateUnoService("com.sun.star.util.URLTransformer").parseStrict(URL)
oDaten = oFrame.queryDispatch(URL, "", 0)
'oDaten = oDokument.Sheets().getByName("Tabelle 01")
' Konvertierungsparameter setzen:
Args(0).Name = "URL"
Args(0).Value = sDateiURL
Args(1).Name = "FilterName"
Args(1).Value = sFilterName
Args(2).Name = "FilterOptions"
Args(2).Value = "44, 34, ANSI, 1" '44="," 34="""
' Datei abspeichern:
If NOT IsNull(oDaten) Then
oDaten.dispatch(URL, Args())
End If
End Sub
ich bin Anfänger in der Makro-Programmierung und benötige noch etwas Unterstützung. Meine beide Makros ermöglichen die Konvertierung einer Calc-Datei in eine CVS-Datei. Allerdings wird dabei nur die zuletzt aktive Tabelle konvertiert. Ich möchte aber die Inhalte einzelner bestimmter Tabellen zusammenfassen und gemeinsam in dieser CSV-Datei speichern. Welche Code-Erweiterungen sind notwendig?
Danke vorab.
Sub CSV_Konvertierung
Dim sURL as String
Dim sPfad as String
Dim sDatei as String
Dim Args(1) as new com.sun.star.beans.PropertyValue
Dim bDateiCheck as Boolean
' Artikel.sxc im Hintergrund öffnen:
sURL = ConvertToURL(sQuelldatei)
Args(0).Name = "Hidden"
Args(0).Value = True
oDokument = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
'Kontrolle, ob die korrekte Datei verwendet wird:
sPfad = Right(sURL, 11)
if LCase(sPfad)="artikel.sxc" or LCase(sPfad)="artikel.ods" then
bDateiCheck = true
else
bDateiCheck = false
end if
' Daten als CSV-Datei abspeichern
if bDateiCheck=true then
sPfad = Left(sURL, Len(sURL)-4)
sDatei = sPfad + ".csv"
Datei_Speichern(sDatei, "Text - txt - csv (StarCalc)")
else
MsgBox("Es wurde eine falsche Datei geöffnet.")
end if
' Artikel.sxc wieder schließen
oDokument.close(false)
End Sub
'---------------------------------------------------------------------------
' Dieses Makro speichert eine Datei im jeweiligen Format ab (Datei-Export)
'---------------------------------------------------------------------------
Sub Datei_Speichern(sDateiURL as String, sFilterName as String)
Dim oFrame as Object
Dim oDaten as Object
Dim URL as new com.sun.star.util.URL
Dim Args(2) as new com.sun.star.beans.PropertyValue
oFrame = oDokument.getCurrentController().getFrame()
'oFrame = oDokument.Sheets().getByName("Tabelle 01")
URL.Complete = ".uno:SaveAs"
CreateUnoService("com.sun.star.util.URLTransformer").parseStrict(URL)
oDaten = oFrame.queryDispatch(URL, "", 0)
'oDaten = oDokument.Sheets().getByName("Tabelle 01")
' Konvertierungsparameter setzen:
Args(0).Name = "URL"
Args(0).Value = sDateiURL
Args(1).Name = "FilterName"
Args(1).Value = sFilterName
Args(2).Name = "FilterOptions"
Args(2).Value = "44, 34, ANSI, 1" '44="," 34="""
' Datei abspeichern:
If NOT IsNull(oDaten) Then
oDaten.dispatch(URL, Args())
End If
End Sub