Aus den Inhalten einer Tabelle mehrere Dateien erzeugen lassen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

blacksun
Beiträge: 2
Registriert: Sa, 28.05.2022 03:36

Aus den Inhalten einer Tabelle mehrere Dateien erzeugen lassen

Beitrag von blacksun »

Hallo zusammen,

ich habe folgendes Problem.

Ich habe eine Tabelle mit 4 Spalten

In Spalte A und C stehen in jeder Zeile immer die gleichen Inhalte

Inhalt der Zellen in Spalte A:
Dies ist der fixe Teil1
der soll in jede Datei

Inhalt der Zellen in Spalte C:
Dies ist der fixe Teil2
der soll auch in jede Datei

In der Spalte B steht in jeder Zeile ein anderer Inhalt:
variabler Inhalt Zeile 1
variabler Inhalt Zeile 2
variabler Inhalt Zeile 3
....

Die Inhalte in den Spalten A bis C enhalten Zeilenumbrüche und Leerzeichen, aber keine Sonderzeichen.

In der Spalte D steht der Text den die Datei als Namen erhalten soll:
Dateiname1.txt
Dateiname2.txt
Dateiname3.txt
...

Die variablen Inhalte der Zellen in den Spalten B und D kommen immer nur einmal vor.

Wie kann ich aus jeder Zeile eine Datei erzeugen lassen deren Inhalt aus den Spalten A bis C zusammengebaut und die dann unter dem Namen in Spalte D gespeichert wird?

Falls das OS, auf dem ausgeführt wird, eine Rolle spielt: Windows 10

Vielen Dank schonmal für eure Hilfe.
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Aus den Inhalten einer Tabelle mehrere Dateien erzeugen lassen

Beitrag von Karolus »

Hallo

Das ist zwar einfach und trivial lösbar, aber ich frage erstmal: Wozu (dutzende|hunderte|tausende) winzige .txt -Dateien erzeugen, die alle zum grössten Teil den gleichen Inhalt haben, abgesehen von dem "variablen" aus Spalte B ???
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
blacksun
Beiträge: 2
Registriert: Sa, 28.05.2022 03:36

Re: Aus den Inhalten einer Tabelle mehrere Dateien erzeugen lassen

Beitrag von blacksun »

Karolus hat geschrieben: Sa, 28.05.2022 08:29 txt -Dateien erzeugen, die alle zum grössten Teil den gleichen Inhalt haben, abgesehen von dem "variablen" aus Spalte B
Es werden insgesamt ca. 100 Dateien.
Die txt-Dateien habe ich nur als Beispiel genannt. Es handelt sich um OVPN-Dateien. Der variable Teil ist der Servername. Der fixe Teil ist der Teil der Konfiguration der bei allen Servern gleich ist.
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Aus den Inhalten einer Tabelle mehrere Dateien erzeugen lassen

Beitrag von Karolus »

Code: Alles auswählen

from pathlib import Path
from uno import fileUrlToSystemPath as url2path

def write_vpn_configs():
    doc = XSCRIPTCONTEXT.getDocument()
    base = Path(url2path(doc.URL))
    data = doc.CurrentSelection.DataArray
    for pre, servers, rest, vpn_name in data:
        with open(base.with_name(vpn_name),"w") as vpn_file:
            vpn_file.write(f"{pre}\n{servers}\n{rest}\n")
Ich hoffe du arbeitest mit Libreoffice, weisst wo deine Benutzerconfiguration ist und bist in der Lage den obigen Code in eine Datei im Pfad:

…<dein Lo_config_ordner>/Scripts/python/calc2vpn.py
…zu speichern.

in deiner Calc-datei selektierst du dann den Bereich mit den Daten, und führst die Funktion aus via →Extras→Makros→Makros ausführen……

Die ovnp-Dateien landen im gleichen Verzeichnis wie deine Calc-datei.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten