BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[bedingt gelöst]Calc einzelne Tabelle als XLS-Datei speichern
[bedingt gelöst]Calc einzelne Tabelle als XLS-Datei speichern
Ich möchte gerne eine einzelne Tabelle per Makro als XLS-Datei speichern. Das folgende Makro erstellt mir zwar eine XLS-Datei, es werden aber alle Tabellen im Calc-Dokument gespeichert. Ich hätte gerne aber nur eine Tabelle davon,
z. B. Tabelle 2. Hat jemand eine Idee, wie ich das realisieren kann?
'* zum Speichern des Dokuments
Dim sDatName As String
Dim omyProps(0) as New com.sun.star.beans.PropertyValue
oDoc = ThisComponent
'* Speicherparameter
omyProps(0).Name = "FilterName"
omyProps(0).Value = "MS Excel 97"
.
.
.
'* Datei schreiben
sDatName = "c:\temp\xls\PlanBG.xls"
sDatName = converttourl (sDatName)
odoc.storeasurl (sDatName, omyProps())
Danke für Tipps
Ray
z. B. Tabelle 2. Hat jemand eine Idee, wie ich das realisieren kann?
'* zum Speichern des Dokuments
Dim sDatName As String
Dim omyProps(0) as New com.sun.star.beans.PropertyValue
oDoc = ThisComponent
'* Speicherparameter
omyProps(0).Name = "FilterName"
omyProps(0).Value = "MS Excel 97"
.
.
.
'* Datei schreiben
sDatName = "c:\temp\xls\PlanBG.xls"
sDatName = converttourl (sDatName)
odoc.storeasurl (sDatName, omyProps())
Danke für Tipps
Ray
Zuletzt geändert von Ray123 am Fr 10. Sep 2021, 13:54, insgesamt 1-mal geändert.
Win10 20H2 x64 LO7.1.0.3
Re: Calc einzelne Tabelle als XLS-Datei speichern
Hallo,
zunächst alle anderen Tabellen löschen und dann speichern?
zunächst alle anderen Tabellen löschen und dann speichern?
Gruß,
mikele
mikele
Re: Calc einzelne Tabelle als XLS-Datei speichern
Das geht nicht, da die Tabellen vorformatiert sind und mittels Makro befüllt werden. Die Anzahl der zu erstellenden Tabellen ist auch erst während des Makrolaufs bekannt.
Win10 20H2 x64 LO7.1.0.3
Re: Calc einzelne Tabelle als XLS-Datei speichern
Hallo,
ich meinte schon, die überzähligen Tabellen per Makro zu löschen.
Alternativ erzeugst du ein neues Dokument und fügst dort das Tabellenblatt ein.
ich meinte schon, die überzähligen Tabellen per Makro zu löschen.
Alternativ erzeugst du ein neues Dokument und fügst dort das Tabellenblatt ein.
Gruß,
mikele
mikele
Re: Calc einzelne Tabelle als XLS-Datei speichern
Hallo Mikele,
das mit dem neuen Dokument habe ich auch schon überlegt und bin am Probieren. Es wäre halt schön gewesen, wenn man über Parameter das gewünschte Tabellenblatt direkt speichern hätte können.
Schöner Tag noch
Ray
das mit dem neuen Dokument habe ich auch schon überlegt und bin am Probieren. Es wäre halt schön gewesen, wenn man über Parameter das gewünschte Tabellenblatt direkt speichern hätte können.
Schöner Tag noch
Ray
Win10 20H2 x64 LO7.1.0.3
Re: Calc einzelne Tabelle als XLS-Datei speichern
Hallo
Code: Alles auswählen
………
………
sheets = doc.Sheets
names = sheets.ElementNames
for each sheetname in names
if sheetname <> "Tabelle 2" then
sheets.removeByName( sheetname )
……
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Calc einzelne Tabelle als XLS-Datei speichern
So, da es scheinbar die gewünschte Möglichkeit nicht gibt, habe ich es nun tatsächlich so realisiert, daß ich die Datei als Zieldatei speichere, die Arbeitsdatei dann nochmals unter anderen Name speichere, die Zieldatei öffne, die nicht gewünschten Tabellen lösche und danach die Zieldatei erneut speichere und in LO schließe.
Hier für evtl, Interessenten der grundsätzliche Code:
Hier für evtl, Interessenten der grundsätzliche Code:
Code: Alles auswählen
'* Datei schreiben
sDatName1 = "c:\temp\xls\Zieldatei.xls"
sDatName1 = converttourl (sDatName1)
odoc.storeasurl (sDatName1, omyProps())
'* Datei neu schreiben, damit Zieldatei.xls geaendert werden kann
sDatName2 = "c:\temp\xls\Test.xls"
sDatName2 = converttourl (sDatName2)
odoc.storeasurl (sDatName2, omyProps())
'* Zieldatei oeffnen zum Tabellen loeschen
vDoc=StarDesktop.loadComponentFromURL (sDatName1, "_blank", 63, Arg())
'* nun Tabellen loeschen
oSheets = vDoc.Sheets
oSheets.removeByName("Tabelle_x")
oSheets.removeByName("Tabelle_z")
oSheets.removeByName("Tabelle_12")
'* und Datei wieder speichern und schließen
vDoc.storeasurl (sDatName1, omyProps())
vDoc.close(true)
Win10 20H2 x64 LO7.1.0.3
Re: [bedingt gelöst]Calc einzelne Tabelle als XLS-Datei speichern
hallo
Verwende ….storetoUrl(…Test.xls, … )
Dann kannst du auf dem geöffneten Original weiterarbeiten.
Verwende ….storetoUrl(…Test.xls, … )
Dann kannst du auf dem geöffneten Original weiterarbeiten.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: [bedingt gelöst]Calc einzelne Tabelle als XLS-Datei speichern
Danke für den Tipp, das werde ich austesten...
Schönes Wochenende
Schönes Wochenende
Win10 20H2 x64 LO7.1.0.3
Re: [bedingt gelöst]Calc einzelne Tabelle als XLS-Datei speichern
Mit storeToUrl wird der Code etwas kürzer, es entfällt der Teil mit der zweiten Speicherung:
Code: Alles auswählen
'* Datei schreiben
sDatName1 = "c:\temp\xls\Zieldatei.xls"
sDatName1 = converttourl (sDatName1)
odoc.storetourl (sDatName1, omyProps())
'* Zieldatei oeffnen zum Tabellen loeschen
vDoc=StarDesktop.loadComponentFromURL (sDatName1, "_blank", 63, Arg())
'* nun Tabellen loeschen
oSheets = vDoc.Sheets
oSheets.removeByName("Tabelle_x")
oSheets.removeByName("Tabelle_z")
oSheets.removeByName("Tabelle_12")
'* und Datei wieder speichern und schließen
vDoc.storeasurl (sDatName1, omyProps())
vDoc.close(true)
Win10 20H2 x64 LO7.1.0.3
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️