🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Tabelle aus mehreren Quellen automatisch sortieren

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Thomasio
Beiträge: 14
Registriert: So 13. Feb 2022, 14:13

Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von Thomasio » So 12. Nov 2023, 10:57

Ich habe mir ein kleines Programm geschrieben, was Festplatten-Inhalte ausliest und die Dateinamen samt Ordnerstruktur in eine .csv schreibt.
Diese Datei öffne ich dann mit LibreOffice, sortiere die Daten nach der Spalte Dateiname und speichere das Ganze als .ods
Das klappt so weit wunderprima.

Dann habe ich mehrere Festplatten zusammengefasst, sprich die Daten aus mehreren .csv oder wahlweise den entsprechenden .ods zusammen kopiert, in einer einzelnen Tabelle sortiert und das Ganze als eine einzige Datei gespeichert.
(Logisch haben die einzelnen Dateien alle dieselbe Spaltenstruktur, nur halt verschiedene Zeileninhalte.)
Das geht manuell ohne Probleme, heisst aber, immer wenn sich der Inhalt einer meiner Festplatten ändert, muss ich nicht nur den Inhalt dieser Platte mit meinem Programm neu auslesen, ich muss auch die Gesamt-Liste nochmal neu zusammen kopieren und neu sortieren.

Die Frage ist also, lässt sich das automatisieren, sprich in LibreOffice eine .ods erstellen, die automatisch die einzelnen .csv und/oder .ods liest, die Daten zusammen kopiert und sortiert?

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von mikele » So 12. Nov 2023, 13:53

Hallo,
brauchst du die einzelnen csv (der einzelnen Laufwerke)?
Warum nicht gleich alle Laufwerke in eine ods-Datei einlesen?
Ergänzung: Welches Betriebsystem nutzt du?
Gruß,
mikele

Thomasio
Beiträge: 14
Registriert: So 13. Feb 2022, 14:13

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von Thomasio » So 12. Nov 2023, 14:49

Naja, wie man es sieht.
Wenn ich nur das Gesamtergebnis habe, dann muss ich bei jeder Änderung an einer der Platten das ganze Gesamtergebnis neu machen, habe ich aber die Inhalte der Platten jeweils einzeln, muss ich bei Veränderungen nur diese eine Platte neu einlesen.

Genauer, ich habe mir ein paar existierende Programme angesehen die Festplatteninhalte auslesen können, inkl. der entsprechenden Funktionen in den Office-Programmen, aber die liefern alle nicht das Ergebnis was ich gerne hätte, darum habe ich mir mein eigenes Programm gecoded, was genau das liefert was ich gerne hätte, allerdings kann mein Programm immer nur einen Platteninhalt pro .csv Datei schreiben, anhängen oder updaten geht nicht, will ich auch nicht, weil ich dann wieder das Problem vom vorherigen Absatz habe.

Manuell zusammen kopieren geht natürlich, aber genau das würde ich halt gerne automatisieren.

OS ist Glückssache, meistens Win10 pro, ich habe aber auch ein halbes Dutzend VMs mit jeweils anderem OS und ich wechsele auch öfter mal welches OS ich gerade auf dem Host habe.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2536
Registriert: Fr 10. Dez 2010, 10:01

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von karolus » So 12. Nov 2023, 18:09

Hallo
Es gibt die Möglichkeit eine …csv als externe Datenquelle mit allen ImportOptionen plus [x]link einzubinden.

zur »Aktualisierung« schiebst du die neuen …csv in den Ordner der angemeldeten Datenquelle, und (im Falle richtiger OS:

Code: Alles auswählen

cat  *.csv  >> unterordner/neu.csv
mv unterordner/neu.csv  angemeldete.csv
im Falle Windows musst du schauen welches Equivalent als Ersatz für die obengenannten Befehle taugt!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Thomasio
Beiträge: 14
Registriert: So 13. Feb 2022, 14:13

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von Thomasio » So 12. Nov 2023, 21:03

Hmm, ich wollte das mit dem einbinden eigentlich nur einmal machen, sprich die Namen und Speicherorte der .csv bleiben ja gleich, da wird nur bei Veränderung und neu auslesen einer meiner Platten der Dateiinhalt verändert, bzw. komplett überschrieben.
Wie ich die einbinden kann ist mir schon klar, die Frage ist ob ich die so einbinden kann, dass wenn sich ein Dateiinhalt ändert LibreOffice die Änderung beim nächsten Öffnen erkennt und die Tabelle mit dem Endergebnis automatisch neu sortiert.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2536
Registriert: Fr 10. Dez 2010, 10:01

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von karolus » So 12. Nov 2023, 21:43

Hallo
Das Einbinden in Calc machst du nur einmal, meine Beschreibung zielt auf die effiziente Aktualisierung der Quell.csv
Ich dachte du wolltest am Schluss alle Daten in einem Tabellenblatt haben, wenn du mehrere …csv einbindest hast du doch auch mehrere Tabellenblätter?!

Soweit ich weiss, »merkt« Calc das sich eine verlinkte Quelle verändert hat, und fragt dich in einem Dialog ob du Aktualisieren möchtest.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Thomasio
Beiträge: 14
Registriert: So 13. Feb 2022, 14:13

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von Thomasio » Mo 13. Nov 2023, 13:03

Wie sage ich das nu? Jein.
Ich will ganz am Ende den Inhalt aller meiner Festplatten in einer einzigen Tabelle haben, aber die Quell-csv sollen verschiedene Dateien bleiben, die ich nach Bedarf mit meinem selber gecodeten Programm auf den neuesten Stand bringe.
Ich stelle mir vor, dass ich eine .ods erstelle, die zuerst die ganzen .csv einbindet und dann eine weitere Tabelle hat die via sverweis alle Daten aller anderen Tabellen zusammen kopiert, wo ich dann nur diese .ods öffnen muss um sofort die fertig sortierte Gesamtliste zu sehen.

Edit: Habs selber rausgefunden, mit drei kleinen Haken.
Erstmal, ganz einfach, in der .ods via Tabelle - Externe Verknüpfungen kann ich ganz schlicht eine .csv auswählen und die wird dann komplett übernommen, ganz ohne dass ich die .csv als separate Tabelle einbinden müsste.
Das Ganze wiederhole ich einfach für alle .csv die ich haben will und fertig.
Wichtig ist offensichtlich nur, dass ich vor jeder externen Verknüpfung ein anderes Feld in meiner Tabelle auswähle, weil er sonst die vorherige Verknüpfung überschreibt und blöd daran ist, dass er mir nirgendwo anzeigt welches Feld schon eine Verknüpfung enthält.
Nicht ganz verstanden habe ich, wie ich folgende 3 Dinge lösen kann:

1) Jedes Mal wenn ich die .ods öffne bekommen ich eine Warnung, dass das automatische Aktualisieren externer Verknüpfungen deaktiviert ist.
Kann man das irgendwie permanent aktivieren?

2) In der .ods wird nicht angezeigt welche .csv verknüft sind und auch nicht welche Felder in meiner Tabelle welche Verknüpfung enthalten, er zeigt halt einfach nur sämtliche Daten an.
Falls ich in der Liste meiner .csv die Übersicht verliere, kann ich irgendwo nachsehen welche .csv mit welchen Feldern verknüpft sind?

3) Wenn ich die .ods schliesse und neu öffne bekomme ich zuerst das angezeigt was ich sehen will, sprich inkl. der Sortierung die ich vorher gewählt hatte, aber wenn ich die Warnung mit der deaktivierten Aktualisierung bestätige und die Aktualisierung aktiviere, verliert er die Sortierung, auch dann wenn sich an den .csv gar nichts geändert hat.
Kann ich die Sortierung samt Optionen nicht so speichern, dass die nach der Aktualisierung erhalten bleibt?

Thomasio
Beiträge: 14
Registriert: So 13. Feb 2022, 14:13

Re: Tabelle aus mehreren Quellen automatisch sortieren

Beitrag von Thomasio » Fr 22. Nov 2024, 16:45

Ein Jahr alt ist dieses Thema jetzt, in der Zwischenzeit bin ich etwas weiter gekommen, aber eine wirkliche Lösung habe ich immer noch nicht.
Das Einbinden einer .csv via Tabelle - Externe Verknüpfungen klappt prima, solange es nur eine einzelne Einbindung ist und das Tabellenfeld in dem diese Einbindung steht nicht im Laufe späterer Updates überschrieben wird.

Wie erkläre ich das?

Mal angenommen ich mache eine externe Verknüpfung zu einer .csv in A1, wo in der .csv 100 Zeilen drin stehen, dann kann ich in A101 die nächste externe Verknüpfung rein schreiben, aber wenn sich danach an der ersten .csv etwas ändert und die dann 110 Zeilen hat, dann gibt das totalen Murks, weil die automatische Aktualisierung das Feld mit der zweiten Verknüpfung sowie die ersten 10 Zeilen der zweiten Verknüpfung überschreibt, aber alle Daten aus der zweiten Verknüpfung ab Zeile 111 (also Zeile 11 in der .csv) beibehält.
Noch schlimmer wenn ich die Daten sortiere und dadurch in Feld A1 irgendein Text einsortiert wird, da weiss ich dann nie wo die externe Verknüpfung landet und/oder ob die überhaupt noch existiert. Soweit ich es verfolgen konnte wird dann nicht mehr aktualisiert, sondern er behält einfach nur die Daten die bis dahin im .ods gespeichert waren.

Ich war dann so schlau, dass ich die externen Verknüpfungen irgendwo so weit unten rein geschrieben habe, dass sie sich nie überschneiden, also erste Verknüpfung in A100000, zweite Verknüpfung in A110000, usw.

Das klappt im Prinzip, ich darf das Ganze aber nur genau einmal speichern, direkt nachdem ich alle Verknüpfungen gemacht habe und bevor ich irgendwas sortiere oder sonst irgendwas an den Zeilen ändere. Danach darf ich die .ods nie wieder speichern, weil jedwede Änderung, wie z.B. eine Sortierung der Zeilen, die Inhalte der Zeilen von unten nach oben verschiebt, dort speichert, dann beim nächsten Öffnen die automatische Aktualisierung die Zeilen oberhalb von 100000 neu einliest und damit sämtliche Zeilen die beim vorherigen Öffnen schon existiert haben doppelt existieren, geänderte Zeilen in beiden Versionen, alt und neu, existieren, aus den .csv gelöschte Zeilen oben im .ods weiterhin existieren und nur neu hinzugefügte Zeilen nur einmal korrekt aktualisiert wurden.

Solange ich die .ods immer nur öffne, die Automatik ihre Aktualisierungen aus den verknüpften .csv machen lasse, dann die Daten so sortiere wie ich sie brauche (meistens nach Spalte B alphabetisch) und dann die .ods ohne speichern wieder schliesse, geht alles so wie ich das gerne hätte, nur nervt es halt schon sehr, wenn ich immer dieselbe Sortierung bei jedem Öffnen der .ods immer wieder neu machen muss, aber eine Lösung wie ich das automatisch sortiert bekomme ohne dass Murks in den Daten entsteht habe ich nicht gefunden.

Hat vielleicht hier wer eine Idee wie ich das anstellen kann?


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.



Antworten