🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Alle Dateien eines Ordners in ein Calc-Dokument einbinden
-
- Beiträge: 29
- Registriert: Mi 7. Okt 2020, 16:47
- Wohnort: Westsachsen
Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Hallo Gemeinschaft,
als ich noch bei Excel war, gab es da ein Makro, das kopierte bei mir alle Dateien eines Ordners (Verzeichnisses) in eine neue Tabelle, jede Datei in ein Arbeitsblatt. Da ich immer noch sehr viel mit solchen Aufgaben zu tun habe, wäre es schön, wenn man so etwas auch in LibreOffice haben könnte, ich habe leider 0-Kenntnisse von Basic-Programmmierung. Die Calc-Dateien haben unterschiedliche Größe und sind auch unterschiedich aufgebaut und - es sind .odt UND .xls-Dateien.
Vorerst bin ich gespannt auf Eure freundliche Hilfe
Sta
als ich noch bei Excel war, gab es da ein Makro, das kopierte bei mir alle Dateien eines Ordners (Verzeichnisses) in eine neue Tabelle, jede Datei in ein Arbeitsblatt. Da ich immer noch sehr viel mit solchen Aufgaben zu tun habe, wäre es schön, wenn man so etwas auch in LibreOffice haben könnte, ich habe leider 0-Kenntnisse von Basic-Programmmierung. Die Calc-Dateien haben unterschiedliche Größe und sind auch unterschiedich aufgebaut und - es sind .odt UND .xls-Dateien.
Vorerst bin ich gespannt auf Eure freundliche Hilfe
Sta
Warum ist ein Kanaldeckel rund? Damit er nicht in den Kanal fallen kann..
LO 24.2.6.2 + Windows 11 Home 24H2
LO 24.2.6.2 + Windows 11 Home 24H2
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Hallo
Meinst du dieInhalte der Dateien oder die Dateipfade?
Meinst du dieInhalte der Dateien oder die Dateipfade?
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 29
- Registriert: Mi 7. Okt 2020, 16:47
- Wohnort: Westsachsen
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Ich meine die Inhalte, die Dateipfade lassen sich ja auf Systemebene oder mit dem Kommando-Zeilen "dir/b" auslesen.
Warum ist ein Kanaldeckel rund? Damit er nicht in den Kanal fallen kann..
LO 24.2.6.2 + Windows 11 Home 24H2
LO 24.2.6.2 + Windows 11 Home 24H2
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Hallo,
prinzipiell sollte das folgende Makro deine Wünsche erfüllen:
Ob das Ganze sinnvoll ist, hängt natürlich von den Dateien ab ...
prinzipiell sollte das folgende Makro deine Wünsche erfüllen:
Code: Alles auswählen
Sub Main
'neues Dokument erzeugen, dass alle Tabellen aufnehmen soll
Dim mArgs()
oDocument = StarDesktop.loadComponentFromURL ("private:factory/scalc","_blank", 0, mArgs)
'Verzeichnis auslesen
sFolder="c:\test" 'welches Verzeichnis soll zusammengefasst werden
sFolderUrl = ConvertToUrl(sFolder)
oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
aDateien = oSimpleFileAccess.getFolderContents( sFolderUrl,false )
'Durchlauf durch alle Dateien
For i = 0 To UBound( aDateien )
'wenn .ods oder .xls dann Durchlauf durch alle Tabellen
if right(aDateien(i),3)="ods" or right(aDateien(i),3)="xls" then
'öffnen der Datei, könnte auch im Hintergrund geschehen
oQuelle=StarDesktop.loadComponentFromURL (adateien(i),"_blank", 0, mArgs)
for k=0 to oQuelle.Sheets.Count-1
oDocument.Sheets.importSheet(oQuelle, oQuelle.Sheets(k).name,oDocument.Sheets.Count)
next
oQuelle.Close(true)
end if
next i
'Dateiname und Pfad der neuen Datei festlegen
aVerzeichnis=split(sFolderUrl,"/")
aVerzeichnis(ubound(aVerzeichnis))="zusammenfassung.odt"
sDatei_neu=join(aVerzeichnis,"/")
'Speichern
oDocument.storeAsUrl( convertToUrl(sDatei_neu), mArgs)
'Schließen
oDocument.Close(true)
End Sub
Gruß,
mikele
mikele
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Das hatte ich vor kapp 14Tagen so ähnlich getestet, leider crasht LO nach relativ wenigen importierten Tabellen.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 29
- Registriert: Mi 7. Okt 2020, 16:47
- Wohnort: Westsachsen
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Hallo mikele,
mit Verspätung möchte ich antworten. Sorry.
Danke für deine Mühe, aber das Makro tut nix, nur ein neue Datei namens "Zusammenfassung.odt" in dem gewählten Ordner (Verzeichnis) erstellen, die aber offensichtlich das Excel-XLS-Format hat. Ich benutze LO Version 7.6.2.1 - also die letzte.
mit Verspätung möchte ich antworten. Sorry.
Danke für deine Mühe, aber das Makro tut nix, nur ein neue Datei namens "Zusammenfassung.odt" in dem gewählten Ordner (Verzeichnis) erstellen, die aber offensichtlich das Excel-XLS-Format hat. Ich benutze LO Version 7.6.2.1 - also die letzte.
Warum ist ein Kanaldeckel rund? Damit er nicht in den Kanal fallen kann..
LO 24.2.6.2 + Windows 11 Home 24H2
LO 24.2.6.2 + Windows 11 Home 24H2
Re: Alle Dateien eines Ordners in ein Calc-Dokument einbinden
Hallo,
wenn die Datei in dem Verzeichnis erstellt wird, dann in der Zeile
das Verzeichnis ohne \ am Ende eingeben.
In der namensgebenden Zeile
muss es natürlich
es ist aber (so oder so) eine Calc-Datei (getestet mit LO 7.3.7).
wenn die Datei in dem Verzeichnis erstellt wird, dann in der Zeile
Code: Alles auswählen
sFolder="c:\test" 'welches Verzeichnis soll zusammengefasst werden
In der namensgebenden Zeile
Code: Alles auswählen
aVerzeichnis(ubound(aVerzeichnis))="zusammenfassung.odt"
Code: Alles auswählen
aVerzeichnis(ubound(aVerzeichnis))="zusammenfassung.ods"
Gruß,
mikele
mikele
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.