Base/Calc: externe Datenquellen dynamisch integrieren (vergleichbar mit Power Query in Excel)

Betriebssystem: Linux Mint 22.2 Zara – LibreOffice Version 24.7.72 – Neuling bei Linux und LibreOffice

Hallo,

ich habe gesucht und mehrere Beiträge gelesen, die sich entweder mit Power Query-Funktionen für LibreOffice oder mit der Verknüpfung externer Datenquellen befassen. Allerdings habe ich keine echte Antwort auf meine Frage gefunden, daher stelle ich sie hier:

  • Ich erhalte aus einem System autmatisiert und häfuig (mehrmals am Tag) *.csv-Dateien mit genau der gleichen Struktur in einem freigegebenen Verzeichnis.

  • Ich möchte eine Abfrage/Tabelle, die dieses Verzeichnis (alle Dateien – einschließlich neu hinzugefügter!) beim Aufruf abfragt, sich aktualisiert und die konsolidierten Daten in leicht veränderter Form (Spalten ausgeblendet und neu angeordnet) anzeigt.

  • Ich bin mir nicht sicher, ob es besser ist, Calc oder Base zu verwenden und wie ich anfangen soll. Ich habe bereits einige Versuche unternommen, aber nichts hat so funktioniert, wie ich es mir vorgestellt habe, oder – was wahrscheinlicher ist – ich habe es nicht wirklich verstanden.

  • In Excel habe ich zu diesem Zweck mit Power Query eine Abfrage in einer Tabelle erstellt – diese Abfrage aktualisiert sich auf Knopfdruck, blendet unnötige Inhalte aus und ordnet die verbleibenden Spalten so an, wie ich es möchte.

Viele Grüße und ich freue mich auf einen spannenden Austausch hier im Forum – leider werde ich am Anfang wahrscheinlich viel „nehmen” und erst mittelfristig etwas „zurückgeben” können.

Gruß

Crossposting:

1 Like

Und soweit war ich bisher im englischen Forum:

  1. Mit den GNU Core Utilities sollte es möglich sein, Abfragen über mehrere gleich strukturierte Textdateien zu durchzuführen. 30 Jahre alte Bordmittel, simpel, effizient, aber zunächst mal unkomfortabel.
  2. Mit Calc oder Base müsste man die Textdateien erst zu einer Tabelle zusammenfassen. Apache OpenOffice Community Forum - Merge sheets of spreadsheet documents - (View topic) sollte das mit Calc hinbekommen.
  3. Für Base kenne ich 2 Arten, Textdateien zu verarbeiten:
    3.1. Der eingebaute Datenbanktreiber für Textdateien erscheint mir hier untauglich. Er würde zwar alle Textdateien als Tabellen auflisten, erlaubt aber nur maximal simple Abfragen über eine Tabelle.
    3.2. HSQL ist eine Datenbank, die Textdateien als Datenbanktabellen einbinden kann. Auch hier macht es die Sache einfacher, wenn man neue Textdateien in einer Gesamttabelle vereinigt und dann die Abfrage über diese Tabelle laufen lässt (anstelle von UNION SELECT über eine wachsende Zahl von Tabellen).

Ich habe hier ein simples Makro für das folgende Szenario:

  • Eine neue Textdatei landet in einem Ordner.
  • Ich fische die neue Datei mit einem Dialog aus dem Ordner.
  • Die Verknüpfung der DB zu einer bestehenden Textdatei wird getrennt.
  • Die bestehende Textdatei wird durch die neue ersetzt.
  • Die Verknüpfung der DB zur Textdatei wird wieder hergestellt.
  • Ein SQL-Statement importiert alle Daten in der richtigen Spaltenfolge, mit den richtigen Datentypen und ohne Duplikate aus der verknüpften Textdatei in eine Datenbanktabelle.

Die Hauptarbeit wird nicht vom Makro-Code erledigt, sondern mit SQL, das genau für sowas vor 50 Jahren erfunden wurde. Das funktioniert hier sogar mit Buchungsdaten verschiedener Banken, die korrekt in dieselbe Tabelle importiert werden. Das Ergebnis erlaubt detaillierte Auswertungen über hunderttausende Datensätze aus 16 Jahren.
Und wie bei 99% aller csv-Fragen