BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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. 🤗

[gelöst]CSV-Dateien dynamisch nach Base importieren ohne Neuregistrierung

Alles zur Programmierung im LibreOffice.
krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

[gelöst]CSV-Dateien dynamisch nach Base importieren ohne Neuregistrierung

Beitrag von krueuw » Fr 1. Jul 2022, 15:35

Hallo Gemeinde,

ich muss häufig ODS-Dateien die als Datenbank eingebunden sind aktualisieren, weil neue CSV-Exporte dies erfordern.

Sieht jemand eine automatisierbare Lösung?

Uwe

PS: Ideal wäre es, wenn das auch noch mit passwortgeschützten Dateien funktionieren würde.
Zuletzt geändert von krueuw am Mo 14. Nov 2022, 21:34, insgesamt 6-mal geändert.

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von Wanderer » Fr 1. Jul 2022, 22:49

krueuw hat geschrieben:
Fr 1. Jul 2022, 15:35
... häufig ODS-Dateien die als Datenbank eingebunden sind aktualisieren, weil neue CSV-Exporte dies erfordern.
...
Ich verstehe das so, dass Du bon irgendwo csv-Dateien bekommst, diese manuell in eine Calc-Datei importierst, die als .ods gespeichert wird, welch dann als Datenquelle dient.

Du könntest statt dessen die .csv-Dateien in einen Ordner werfen und diesen Ordner als Text-Tabelle in Base anmelden. Dan ist jede csv-Datei eine Tabelle der Datenbank
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von gogo » Sa 2. Jul 2022, 11:44

Die Aktualisierung von csv-Datenbanken funktioniert on the fly leider nicht zuverlässig, vor allem wenn sich eine csv-Datei während der Laufzeit ändert (und sich der Ordner vielleicht noch auf einem eingebundenen Laufwerk befindet...). Zu 100% klappt leider nur: LO schließen und wieder öffnen. Wir erstellen so mit Serienbriefen Rechnungen und es hat sich noch kein Kunde beschwert, dass was falsch verrechnet wurde ;)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von krueuw » Di 5. Jul 2022, 13:13

Danke für die Anregungen, werde ich ausprobieren.

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von krueuw » Do 7. Jul 2022, 18:37

Ja, das funktioniert so für mich. Die fehlende Verschlüsselung werde ich durch ein Veracrypt-Volume realisieren. Das Auswählen eines Ordners statt einer Datei ist eine wirklich praktische Sache. Der Neustart stellt in meinem Fall kein Problem dar. Danke. Uwe

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von krueuw » Do 10. Nov 2022, 17:26

Ich habe den Import der CSV-Datei über den gewählten Ordner erfolgreich eingerichtet. Es tritt nur der Fall auf, dass das Datumfeld aus der CSV nicht konstant als Typ Date, sondern auch ohne für mich erkennbaren Grund als Text erkannt wird. Dann funktioniert das weiterverarbeitende Makro nicht mehr. Formatbeispiel:

Schüler*innen Externe Id Text Klasse Datum
Fritz Hermmann 26859 1BG20 16.09.22

Kennt jemand die Ursache? Spitze wäre auch ein Workaround für eine sichere automatische Verarbeitung, also ohne manuellen Eingriff.
Zuletzt geändert von krueuw am Do 10. Nov 2022, 18:27, insgesamt 1-mal geändert.

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von krueuw » Do 10. Nov 2022, 18:25

ok, es ist jetzt klar, woran es liegt. Der Text aus der https://help.libreoffice.org/latest/de/ ... xport.html trifft auf meine Version 6.4 aus Ubuntu 20.04 nicht vollständig zu:
Um beispielsweise sicherzustellen, dass die erste Spalte im Textformat vorliegt, müssen Sie sicherstellen, dass das erste Feld in der ersten Zeile mit gültigen Daten einen Text enthält. Wenn ein Feld in der ersten Zeile mit gültigen Daten eine Zahl enthält, wird die gesamte Spalte auf das Zahlenformat eingestellt, und es werden nur Zahlen und kein Text in dieser Spalte angezeigt.
Es wird nicht nur die zweite Zeile geprüft, sondern offenbar alle. Hat eine Zeile ein verkehrtes Format, etwa wie bei mir ein leeres Feld, dann wird die ganze Spalte als Text statt als Datum erkannt und die Tabelle entsprechend in Base importiert. Meine CSV hat maximal 200.000 Zeilen, da fühlt sich das wie ein Bug an :-( Ist das bei 7.4 wirklich anders? Dann würde sich ja ein Wechsel um den Preis der manuellen Pflege lohnen.

Aber eventuell gibt es ja Ideen die praktikabel sind? Ich hänge mal eine Beispiel an, das sich bei mir nur als Text importieren lässt.
Dateianhänge
AbsencePerStudent1.zip
(1.53 KiB) 51-mal heruntergeladen

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von karolus » Fr 11. Nov 2022, 00:06

Soweit ich weiss bekommst du irgenwo bei der Einrichtung als Datenbank einen Importdialog ähnlich zu:
datum_t_m_J.png
datum_t_m_J.png (111.7 KiB) 1363 mal betrachtet
Im Screenshot ist gut zu erkennen, nach →Rechtsklick auf den Spaltenkopf kannst du die Importeinstellungen explizit festlegen. Diese Einstellungen werden später für alle weiteren .csv Dateien übernommen.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

[doch nicht Gelöst] Re: Daternbank per Makro registrieren bzw. deregistrieren

Beitrag von krueuw » Sa 12. Nov 2022, 15:45

Danke karolus. Ein Update auf mindestens 7.x ist also nötig. Der Importdialog bei 6.4 hier ist wesentlich schmaler und bietet diese weitreichenden Möglichkeiten nicht an.

Die zusammengefasste Lösung für spätere Leser:
  • CSV-Dateien werden nach Base mit "Verbindung zu einer bestehenden Datenbank herstellen" -> Text realisiert,
  • Für CSV mit unterschiedlichen Trennzeichen etc. jeweils ein Verzeichnis erstellen und in je in eine DB importieren,
  • Jede CSV wird eine Tabelle in der importierenden DB,
  • jedes Verzeichnis eine anzumeldende DB an LO,
  • Datentypen können statisch ab 7.x während der Importdefinition angegeben werden (siehe karolus Beitrag),
  • Ein Update der CSV-Dateien erfordert einen Neustart der gesamten Office-Umgebung (für 6.x amtlich, für 7.x?)
Zuletzt geändert von krueuw am Mo 14. Nov 2022, 21:34, insgesamt 1-mal geändert.

krueuw
Beiträge: 17
Registriert: Mo 9. Mai 2016, 13:26

Re: CSV-Dateien dynamisch nach Base importieren ohne Neuregistrierung

Beitrag von krueuw » Sa 12. Nov 2022, 16:38

Hallo Karolus,
ich habe mich eventuell zu früh gefreut. Dein Lösungsvorschlag funktioniert nach Update auf 7.4 nicht so wie ich mir das gedacht habe. Der Import nach Base sieht noch genauso aus wie unter 6.4.

Nach einigem Probieren habe ich was gefunden, was so aussieht wie in deinem Beitrag. Das ist aber der Import nach Calc. Irre ich mich, oder ist es so? Hast du da noch eine Idee?
Uwe

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 ❤️

Antworten