Seite 1 von 1
[erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Fr 6. Nov 2020, 11:20
von nitja
… wie geht das?
Oder, wo finde ich was zum Thema?
(Im AOO-Wiki habe ich jedenfalls nichts gefunden.)
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Sa 7. Nov 2020, 08:42
von Wanderer
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
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Sa 7. Nov 2020, 17:06
von nitja
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!
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: So 8. Nov 2020, 14:07
von mikele
Hallo,
es gibt auch die Möglichkeit
->Tabelle ->Tabelle aus Datei einfügen...
Ein paar Klicks und fertig.
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Di 10. Nov 2020, 14:44
von nitja
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.
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Di 10. Nov 2020, 21:46
von mikele
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
Re: externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Mi 11. Nov 2020, 09:29
von nitja
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.
Re: [erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Mi 11. Nov 2020, 15:07
von mikele
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
Re: [erledigt] externe csv-Datei per basic-Makro als neues sheet in calc-Dokument importieren
Verfasst: Sa 5. Dez 2020, 20:04
von nitja
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.