VisualBasic VCF auf CSV (bzw. .xls) inklusive Fotos generieren (für Nextcloud)

Colts59376

Newbie
Registriert
Jan. 2020
Beiträge
1
Hallo

Hier meine Aufgabe/Problem:
  • Es liegt eine Excel- bzw. CSV-Datei vor. In dieser sind Kontaktdaten drin (Name, Anschrift und so weiter). Eine Zelle verweist auf einen Dateinamen (von mir aus abcd.jpg). Diese JPG-Datei entspricht dem Foto des Kontaktes.
  • Diese Kontakte sollen nun inklusive Foto in Nextcloud rein (aktuelle Version).
  • Es sind hunderte Kontakte
  • Diese ändern sich so häufig, dass wir Nextcloud alle paar Wochen erneuern müssen (sagen wir mal mind. 1x pro Quartal)
Aus den letzten beiden Punkte ergibt sich, dass das so automatisch sein soll wie möglich. Ich kann auf keinen Fall hunderte Fotos per Hand zuordnen.

Zwei mögliche Workflow sehen wie folgt aus:
(1) Mit einem externen Tool CSV -> VCF. Diese VCF in Outlook importeren und mit CalDAVSync (https://caldavsynchronizer.org/de/) zu Nextcloud.

(2) Outlook kann auch (eher schlecht als recht) CSV direkt importieren. Ist eine fürchterliche Benutzeroberfläche aber es geht.

Allgemein kann man sagen: Sobald die Daten in Outlook sind habe ich gewonnen, das Synchronisieren mit CalDAV läuft super.

Beide Lösungen haben aber zwei große Probleme:

[x] Sie sind nicht automatisiert
[x] Die Fotos sind nicht enthalten

Ich finde keine Möglichkeit, VCF-Karten inkl. Fotos zu erstellen. Oder in Outlook CSV einzulesen und die Fotos mitzuspeichern. Oder in NextCloud CSV einzulesen (mit oder ohne Fotos).

Hat hier eine eine Lösung für mich? Ich stehe echt auf dem Schlauch...

Danke!
Ergänzung ()

Ach noch was. Ich dachte noch (daher das Tag mit VBA), dass man das vielleicht irgendwie innerhalb von Outlook mit VBA skripten kann. Aber ich habe das zu wenig Ahnung von.

Ich danke zur Zeit eher über Python nach, hier habe ich diese Bibliothek gefunden. https://eventable.github.io/vobject/ , aber ich finde keine Dokumentation bezüglich des Fotos...
 
Zuletzt bearbeitet:
Würde das vermutlich auch mit Python oder einer anderen Scriptsprache machen...

Was das Bild angeht:
https://de.wikipedia.org/wiki/VCard#Eigenschaften

PHOTOBild oder Fotografie der mit der vCard verbundenen Person. Es kann auf eine externe URL verwiesen oder ein Base64-kodierter Textblock in die vCard eingebettet werden.

So wie ich die Doc von deinem GitHub Link lese kann man beliebige Felder anlegen, die scheinen dort nicht definiert. Ein base64 vom Foto zu kriegen sollte mit Python kein Problem darstellen, das wird dann einfach nur als Feldwert für PHOTO genommen.
 
Zuletzt bearbeitet: (Stackexchange Link)
würde hier mit python arbeiten.
hier gibt es einige möglichkeiten CSVs -> VCFs zu konvertieren.

mit dem foto müsstest du evtl. eine 2. lösung bauen, aber ein VCF sieht ja immer gleich vom aufbau aus.
könntest ja theoretisch den pfad als string mit reinkopieren

https://stackoverflow.com/questions/25502790/python-django-vcard-photo

Python:
BEGIN:VCARD
VERSION:3.0
EMAIL;TYPE=INTERNET:test@example.com
FN:Max Mustermann
N:Muhammed;Abad
ORG:M;o;e;';s; ;C;o
PHOTO;TYPE=JPEG:Pfad/zum/Foto.JPG
TEL;TYPE=cell:123 123 123
TEL;TYPE=work:123 123 123
END:VCARD
 
Zurück
Oben