Makro Öffnen und Speichern unter
Moderator: Moderatoren
Makro Öffnen und Speichern unter
Hallo zusammen,
ich bin ein Neuling im Bereich Makros.
Ich habe einen Ordner mit ganz vielen xls Dateien. Teilweise sind Dateien dabei die als Ausgangsformat .ods hatten und dann von jemand per Batch in .xls geändert wurden. Somit lassen sich diese Daten nicht mehr mit MS Excel verarbeiten da hier dann ein großer Datensalat entsteht.
Nun zu meiner Frage.
Gibt es die Möglichkeit, dass ich ein Makro bekomme wo über Libre die ganzen Dateien in dem Ordner einmal mit Libre öffnen und als .xls gespeichert werden? Stapelverarbeitung? Geht das überhaupt?
Danke für Eure Hilfe.
Thomas
ich bin ein Neuling im Bereich Makros.
Ich habe einen Ordner mit ganz vielen xls Dateien. Teilweise sind Dateien dabei die als Ausgangsformat .ods hatten und dann von jemand per Batch in .xls geändert wurden. Somit lassen sich diese Daten nicht mehr mit MS Excel verarbeiten da hier dann ein großer Datensalat entsteht.
Nun zu meiner Frage.
Gibt es die Möglichkeit, dass ich ein Makro bekomme wo über Libre die ganzen Dateien in dem Ordner einmal mit Libre öffnen und als .xls gespeichert werden? Stapelverarbeitung? Geht das überhaupt?
Danke für Eure Hilfe.
Thomas
Re: Makro Öffnen und Speichern unter
Hallo Tomyw,
ich weiss zwar nicht, warum du die Dateien in .xls speichern willst, aber folgende Methode speichert bzw. formatiert das aktuelle Tabellendokument in das xls-Format.
Ich hoffe das hilft dir fürs erste weiter?
Gruß Matthias
ich weiss zwar nicht, warum du die Dateien in .xls speichern willst, aber folgende Methode speichert bzw. formatiert das aktuelle Tabellendokument in das xls-Format.
Code: Alles auswählen
sub Export_To_XLS()
dim arg(0) as new com.sun.star.beans.PropertyValue
dim sURL as String
arg(0).Name = "FilterName"
arg(0).Value = "MS Excel 97"
sURL = ConvertToURL("c:/Beispielordner/Beispiel.xls")
this.Component.storeAsURL(sURL, arg())
end sub
Gruß Matthias
Re: Makro Öffnen und Speichern unter
Hallo Matthias,
vielen Dank für deine Hilfe. Leider hat es nicht ganz so funktioniert wie ich gedacht habe. Liegt wahrscheinlich daran das ich es falsch beschrieben habe.
Also ich habe einen Ordner C:\testlauf
In diesem Ordner befinden sich ca. 10000 Dateien mit der Endung .xls
Einige der Dateien wurden wie bereits geschrieben mal als .ods Datei abgespeichert und in diesen Ordner gelegt. Irgendwann hat jemand die ganzen Dateien per Batch einfach in .xls umbenannt.
Wenn diese Dateien mit LibreOffice geöffnet werden stimmt alles und ich kann sie per Hand noch einmal Ordentlich als .xls speichern so das diese bei einem Import in eine AccessDatenbank erkannt und verarbeitet werden können.
Nun hatte ich gedacht, dass ich per Makro einfach die 10000 Dateien mit Libre öffnen lasse und aus Libre heraus in .xls speichere. Die "neuen" Dateien sollen dann in einem anderen Ordner C:\testlaufENDE gespeichert werden. Der Dateiname soll so bleiben wie die Originaldatei.
Ich hoffe, dass ich Euch mit dem Thema nicht zu sehr nerve. Aber irgendwie ist das alles per Hand zu erledigen sehr Zeitaufwendig.
Viele Grüße und Vielen Dank für die Hilfe!
Thomas
vielen Dank für deine Hilfe. Leider hat es nicht ganz so funktioniert wie ich gedacht habe. Liegt wahrscheinlich daran das ich es falsch beschrieben habe.
Also ich habe einen Ordner C:\testlauf
In diesem Ordner befinden sich ca. 10000 Dateien mit der Endung .xls
Einige der Dateien wurden wie bereits geschrieben mal als .ods Datei abgespeichert und in diesen Ordner gelegt. Irgendwann hat jemand die ganzen Dateien per Batch einfach in .xls umbenannt.
Wenn diese Dateien mit LibreOffice geöffnet werden stimmt alles und ich kann sie per Hand noch einmal Ordentlich als .xls speichern so das diese bei einem Import in eine AccessDatenbank erkannt und verarbeitet werden können.
Nun hatte ich gedacht, dass ich per Makro einfach die 10000 Dateien mit Libre öffnen lasse und aus Libre heraus in .xls speichere. Die "neuen" Dateien sollen dann in einem anderen Ordner C:\testlaufENDE gespeichert werden. Der Dateiname soll so bleiben wie die Originaldatei.
Ich hoffe, dass ich Euch mit dem Thema nicht zu sehr nerve. Aber irgendwie ist das alles per Hand zu erledigen sehr Zeitaufwendig.
Viele Grüße und Vielen Dank für die Hilfe!
Thomas
Re: Makro Öffnen und Speichern unter
So nebenbei bemerkt: Auch Excel kann Calc-Dateien verarbeiten, neuere Versionen von Haus aus, für ältere stellt Microsoft ein entsprechendes Plugin zur Verfügung.
Zum Thema: Warum wollt ihr LibreOffice für die Aufgabe missbrauchen? Wäre es nicht einfacher, mit einem Shell-Skript, Python-Skript, Perl-Skript, ... alle Zip-Archive aus den 10000 Dateien rauszufischen? Die so ermittelten Dateien könnten gezielt konvertiert werden. Das dürfte auch deutlich schneller ablaufen.
Zip-Archive übrigens deshalb, weil ODF-Dokumente als Zip-Archive verwaltet werden.
Die Programmierung des Skripts kann ja der Kollege übernehmen, der kurzerhand alles umbenannt hat.
Gruß
lorbass
Zum Thema: Warum wollt ihr LibreOffice für die Aufgabe missbrauchen? Wäre es nicht einfacher, mit einem Shell-Skript, Python-Skript, Perl-Skript, ... alle Zip-Archive aus den 10000 Dateien rauszufischen? Die so ermittelten Dateien könnten gezielt konvertiert werden. Das dürfte auch deutlich schneller ablaufen.
Zip-Archive übrigens deshalb, weil ODF-Dokumente als Zip-Archive verwaltet werden.
Die Programmierung des Skripts kann ja der Kollege übernehmen, der kurzerhand alles umbenannt hat.

Gruß
lorbass
Re: Makro Öffnen und Speichern unter
Ja das Excel die calc Dateien öffnen kann habe ich auch mitbekommen. allerdings möchte ich die Dateien dann in eine Access DB einlesen lassen. das habe ich auch schon gemacht. allerdings hat Access das Problem eben mit diesen Dateien da hier dann der Datensalat in die DB geschrieben wird. was wirklich nicht toll aussieht bzw. keine wirklichen Daten enthält.
Kann mir jemand dabei helfen für diese Datenmengen? Wäre echt prima. Würde mich auch mit ner kleinen Spende bedanken.
Viele Grüße
Thomas
Kann mir jemand dabei helfen für diese Datenmengen? Wäre echt prima. Würde mich auch mit ner kleinen Spende bedanken.
Viele Grüße
Thomas
Re: Makro Öffnen und Speichern unter
So, bin frisch aus dem Weihnachtsurlaub zurück deshalb die verspätete Anwort auf deine Frage, ich hoffe es hilft dir noch.
Ich hoffe der Code kann dir weiterhelfen. Falls Probleme mit der Formatierung auftreten kannst du die zwei auskommentierten Zeilen aktivieren, das könnte evtl. helfen.
Gruß Matthias
Code: Alles auswählen
REM ***** BASIC *****
dim url, url2 as String
sub init()
url = ConvertToURL("C:\testlauf")
url2 = ConvertToURL("C:\testlaufENDE")
readdir()
end sub
sub readdir()
dim oUcB as object
dim flist()
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
if oUcb.isFolder(url) then
flist = oUcb.getFolderContents(url, False)
else
msgbox ("Error")
end if
Open_XLSFiles(flist())
end sub
sub Open_XLSFiles(flist() as String)
dim arg(0) as new com.sun.star.beans.PropertyValue
' arg(0).Name = "FilterName"
' arg(0).Value = "MS Excel 97"
for i = 0 to uBound(flist())
if not isReadOnly(flist(i)) then
if StarDesktop.loadComponentFromURL(ConvertToURL(flist(i)), "_blank", 0, arg()) <> NULL then
Export_To_XLS(ConvertToURL(flist(i)))
else
msgbox("Datei" & flist(i) & " konnte nicht geöffnet werden.")
end if
else
msgbox("Fehler: Datei" & flist(i) & " ist Schreibgeschützt")
end if
next
msgbox("FINISHED!")
end sub
sub Export_To_XLS(filename as String)
dim arg(0) as new com.sun.star.beans.PropertyValue
arg(0).Name = "FilterName"
arg(0).Value = "MS Excel 97"
thisComponent.storeAsURL(filename, arg())
end sub
Gruß Matthias
Re: Makro Öffnen und Speichern unter
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)