Also ich wollte zwar alles ohne Makros machen, habe das jetzt mal per Makro gelöst.
Per Makroaufzeichnung habe ich die "berechnete" Tabelle kopiert und in eine bereits erstellte Tabelle per "Inhalte einfügen" ohne Formeln eingefügt. Damit sind die unerwünschten Leerzeilen beim Export in CSV dann weg.
Dank
diesem Beitrag habe ich dann gleich auch den Export mit ins Makro gepackt. Musste den Code zwecks Format und Pfad nur geringfügig anpassen.
Das ganze Makro sieht aktuell so aus:
Code: Alles auswählen
REM ***** BASIC *****
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$Onlinebanking.$A$1:$V$200"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 5
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVDNT"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = false
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
rem ------------- Speichern als CSV --------------
Dim myProps(1) as New com.sun.star.beans.PropertyValue
sPath="/home/marco/Dokumente/Onlinebanking/Lastschtriftvorlagen.csv"
sUrl=ConvertToUrl (sPath)
myProps(0).Name = "FilterName"
myProps(0).Value ="Text - txt - csv (StarCalc)"
myProps(1).Name="FilterOptions"
myProps(1).Value ="59/9,34,33,1,1/1/2/1" 'string mit den Optionen
myDoc = thisComponent
myDoc.storeAsUrl(sUrl,myProps())
End Sub
Das Makro lässt sich mit Sicherheit noch kürzen, insbesondere der aufgezeichnete Teil. Für meine Zwecke würde es aber ausreichen.
Ein Hinweis auf Speicherort und Dateiname nach Speichern wäre natürlich hübsch, noch besser, wenn man den Speicherort und Namen selbst festlegen könnte.
Schade aber, dass es keine einfache Lösung ohne Makro gibt, wäre mir lieber gewesen.
Hylli