Hallo,
nach langer zeit habe ich wieder eine Frage: ich exportiere bereits eine LO-Tabell mit Hilfe eines Makros (danke mikeleb) als PDF-Dokument. Nun möchte ich diese Tabelle als XLSX exportieren. Dazu habe ich das Makro für PDF abgeändert:
sub XLSX_Ausgabe
Datum=year(Date) & right("0"&Month(Date),2) & right("0"&Day(Date),2)
odoc=ThisComponent
Dim arg(2) as new com.sun.star.beans.PropertyValue
arg(0).Name = "URL"
arg(0).Value = Left(odoc.url, Len(odoc.url) - 4)
arg(0).value = Replace (arg(0).value, "Dokumente", "XLSX_Ausgabe") + "_" + Datum + ".xlsx"
arg(1).Name = "FilterName"
arg(1).Value = "calc_xlsx_Export" '<=== hier habe ich auf gut Glück pdf auf xlsx geändert
Dim aFilterData(0) as new com.sun.star.beans.PropertyValue
aFilterData(0).Name = "Selection"
aFilterData(0).Value = ThisComponent.Sheets(0) 'die Zählung der Tabellen beginnt bei 0
arg(2).Name = "FilterData"
arg(2).Value = aFilterData()
ThisComponent.storeToUrl(arg(0).value,arg()) '<=== hier wird Laufzehler gemeldet (siehe unten)
' Fertigmeldung
Datei = ConvertFromUrl(right(arg(0).value,len(arg(0).value)-8))
msgbox "Die XLSX-Datei:" + chr(13) + Datei + chr(13) +"ist fertig"
end sub
Sub Speichern
Dim args(0) as New com.sun.star.beans.PropertyValue
sUrl= converttourl("c:/test.xlsx")
args(0).Name = "FilterName"
args(0).Value = "Calc MS Excel 2007 XML"
ThisComponent.storeToUrl(sUrl,args)
End Sub
Hallo mikeleb,
danke, das hilft mir sehr. Ich habe aber nun ein weiteres Problem: ich habe den ganz oben eingefügten Makro nun auf das richtige Exportfilter korrigiert. Das Speichern als XLSX funktioniert damit. Ich habe aber in dem LO-Dokument weitere Tabelle (zum Einlesen von Daten aus einer Datenbank, eine Berechnungstabelle und eine formatierte Tabelle). Um eine Tabelle ohne Formeln ausgeben zu können kopiere ich die benötigten Spalten der formatierten Tabelle mit "kopieren-Inhalte einfügen-Werte und Formatierungen in eine neu eingefügte Tabelle. Diese neue möchte ich als XLSX exportieren. Mit dem genannten Makro werden aber alle Tabellen kopiert.
Deshalb lösche ich alle Tabelle, bis auf die einen, mit einem mitgeschriebenen Makro. Leider ist danach die neue Tabelle die ich exportieren will leer bis auf die Überschrift (wenn ich den Vorgang manuell mache bleibt der Inhalt erhalten).
Daher meine Fragen:
1) kann ich die eine Tabelle allein exportieren?
oder
2) wie kann ich die überzähligen Tabellen löschen, ohne dass die zu exportierende danach leer ist?
Edit: wie ich durch Tests herausgefunden habe ist die zu exportierende Tabelle leer weil die Funktion "kopieren" im aufgezeichneten Makro nicht durchführt werden kann.
Danke für eure Hilfe!
Ich habe das jetzt mit dem Makro so lösen können:
1) füge neue leere Tabelle ein
2) markiere in der Tabelle deren Inhalt ich exportieren möchte den entsprechenden Bereich (also A1:E1048576 - davor markierte ich den bereich über die Spalten daher funktionierte dann das Kopieren nicht in die Tabelle war leer, das hatte nichts mit dem Löschen von Tabellen zu tun) und kopieren diesen Bereich mit "Inhalte einfügen-Werte und Formate" in die neue leere Tabelle.
3) lösche alle nicht mehr benötigten Tabellen
4) exportiere die neue Tabelle, da keine Formeln mehr enthält, als XLSX.
5) schließe das noch offene Dokument
Das funktioniert gut und reicht für meine Bedürfnisse. Das einzige was noch etwas störend ist, ich muss das Löschen jeder Tabelle extra bestätigen.