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

[erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Alles zur Programmierung im LibreOffice.
Antworten
nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

[erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von nitja » Fr 6. Nov 2020, 11:20

… wie geht das?
Oder, wo finde ich was zum Thema?
(Im AOO-Wiki habe ich jedenfalls nichts gefunden.)
Zuletzt geändert von nitja am Mi 11. Nov 2020, 12:32, insgesamt 1-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von Wanderer » Sa 7. Nov 2020, 08:42

Alternativvorschlag:

Verzeichnis mit den csv-Dateien als Datenquelle anmelden und dann die csvTabelle als Quelle mit der Calc-Tabelle verknüpfen.

Braucht dann kein Macro

Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von nitja » Sa 7. Nov 2020, 17:06

Wanderer hat geschrieben:
Sa 7. Nov 2020, 08:42
… Verzeichnis mit den csv-Dateien als Datenquelle anmelden und dann die csvTabelle als Quelle mit der Calc-Tabelle verknüpfen.

Mfg, Jörn
Hi Jörn, Dank Dir für den Tip! Das Makro, in das das Anfügen des neuen sheets eingebaut werden soll, existiert ohnehin. Mal schauen ob das Einfügen dann durch das Makro lediglich ausgelöst aber außerhalb ausgeführt werden kann.
In dem Verzeichnis, in dem auch die ods-Datei wohnt, gibt es mehrere csv-Dateien, zu denen gelegentlich eine neue (mit einem neuen, von anderer Seite vergebenem Namen) dazu kommt. Es gilt, diese neueste dann eben als letztes sheet in die ods-Datei zu importieren. Lieber zu importieren als zu verknüpfen um einem break des links vorzubeugen, sollten (ältere) csv-Dateien mal gelöscht werden.
Trotzdem wirkt die Idee, mich dafür mit der Handhabe von "Datenquellen" zu befassen, vielversprechend, denn dazu habe ich Beispiele gefunden, die ich vielleicht entsprechend weiter entwickeln kann.
Also nochmal herzlichen Dank für Deine Initiative. Alles Gute Dir!
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

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

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von mikele » So 8. Nov 2020, 14:07

Hallo,
es gibt auch die Möglichkeit
->Tabelle ->Tabelle aus Datei einfügen...
Ein paar Klicks und fertig.
Gruß,
mikele

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von nitja » Di 10. Nov 2020, 14:44

mikele hat geschrieben:
So 8. Nov 2020, 14:07
->Tabelle ->Tabelle aus Datei einfügen...
Ja, genau das, "Wie ist der entsprechende Befehl im Makro dafür?", war/ist die Frage.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

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

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von mikele » Di 10. Nov 2020, 21:46

Hallo,
den einen Makrobefehl dafür gibt es nicht (es sei denn, du möchtest nur den Klick ins Menü durch ein Makro ersetzen).
Ich vermute mal eher, dass du ein Makro suchst, dass
1) ein Tabellenblatt anlegt
2) eine bestimmte csv-Datei öffnet (mit bestimmten Einstellungen zwecks Trennzeichen, Zeichensatz etc.)
3) die Inhalte in das neue Tabellenblatt schreibt
Gruß,
mikele

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von nitja » Mi 11. Nov 2020, 09:29

mikele hat geschrieben:
Di 10. Nov 2020, 21:46
… den einen Makrobefehl dafür gibt es nicht …
Gut, das ist mal 'ne klare Aussage! Danke.
Dann muss also der anschließend beschriebene, ziemlich umständlich anmutende Weg genommen werden. Den kenne ich, hoffte aber eben auf eine direktere Lösung.
Nun ja, damit ist die Frage (wenn auch nicht wirklich befriedigend) erledigt.

Nachtrag: … und jetzt finde ich nicht, wie ich ein erledigtes Thema als "gelöst" markiere.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

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

Re: [erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von mikele » Mi 11. Nov 2020, 15:07

Hallo,
so aufwändig ist das auch wieder nicht. Das meiste sind die Parameter für den cvs-Import (Trennzeichen, Schriftsatz, besondere Behandlung einzelner Spalten, ...).
Eine kurze Variante wäre:

Code: Alles auswählen

	odoc=thiscomponent
	odoc.Sheets.insertNewByName("neue Tabelle",odoc.Sheets.count)
	otab=odoc.sheets.getByName("neue Tabelle")
	sUrl=converttourl("Pfad und Name deiner csv-Datei")
	otab.link(sUrl,"","Text - txt - csv (StarCalc)","44,34,0,1",com.sun.star.sheet.SheetLinkMode.NORMAL)
	oTab.linkmode=com.sun.star.sheet.SheetLinkMode.NONE

Gruß,
mikele

nitja
Beiträge: 190
Registriert: Di 20. Okt 2020, 15:55

Re: [erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren

Beitrag von nitja » Sa 5. Dez 2020, 20:04

oha! Danke mikele!
Hab's mit zeilenweisem Einlesen nach …SimpleFileAccess, …TextInputStream gemacht.
Deutlich aufwendiger, erlaubte aber den Import auf die Zeilen zu beschränken, die weitere Kriterien erfüllen.
Dass ich das brauchen würde, hatte ich seinerzeit noch nicht gesehen.
Funktioniert jetzt besser als erwartet, zumal das Makro einen großen Teil der Verarbeitung von Rohdaten zu "Gebrauchsdaten" erledigt, was mit den Formeln im sheet erheblich länger brauchte.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO


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