ouvrir un fichier.vcf avec calc

Bonjour,J'ai un fichier.vcf (type carnet d'adresse)Peut-on l'ouvrir avec calc pour qu'il mette tout les lignes entre 'BEGIN:VCARD'et'END:VCARD'sur une seule ligneD'avance
        merciLe fichier.vcf contient des fiches de ce type :BEGIN:VCARDVERSION:PRODID:UID:CATEGORIES:,FN:N:BDAY:EMAIL;TYPE=HOME:TEL;TYPE=CELL:NOTE:REV:X-THUNDERBIRD-ETAG:END:VCARDBEGIN:VCARDVERSION:PRODID:UID:CATEGORIES:,FN:N:BDAY:EMAIL;TYPE=HOME:TEL;TYPE=CELL:NOTE:REV:X-THUNDERBIRD-ETAG:END:VCARD...

----- Mail original -----

De: "Isa&ric" <isaric.co@free.fr>
À: "Libreoffice LiBo-users" <users@fr.libreoffice.org>
Envoyé: Mardi 28 Septembre 2021 19:07:22
Objet: [fr-users] ouvrir un fichier.vcf avec calc

Bonjour,J'ai un fichier.vcf (type carnet d'adresse)Peut-on l'ouvrir
avec calc pour qu'il mette tout les lignes entre
 'BEGIN:VCARD'et'END:VCARD'sur une seule ligneD'avance
        merciLe fichier.vcf contient des fiches de ce type
        :BEGIN:VCARDVERSION:PRODID:UID:CATEGORIES:,FN:N:BDAY:EMAIL;TYPE=HOME:TEL;TYPE=CELL:NOTE:REV:X-THUNDERBIRD-ETAG:END:VCARDBEGIN:VCARDVERSION:PRODID:UID:CATEGORIES:,FN:N:BDAY:EMAIL;TYPE=HOME:TEL;TYPE=CELL:NOTE:REV:X-THUNDERBIRD-ETAG:END:VCARD...

Bonjour,

Désolé d'être cru et direct, mais j'en ai rien à péter du format vcf ...

La première solution consiste à convertir le format en tableur texte csv
et après d'ordonnancer les colonnes au choix ...

outils :

python-pyvcf-examples
python3-vcf

Documentation :

https://www.inmotionhosting.com/support/email/convert-vcf-to-csv-for-email-contacts/

solution via un binaire :
https://sourceforge.net/projects/bulkvcftocsv/

Merci pour ton aimable attention

Bien à toi

Bernard

Bonjour,
Une procédure pour résoudre ce problème;
Tu crée d'abord un fichier writer.
Tu ouvres ensuite ton fichier VCF
Avec l'extension Altsearch tu remplaces les fins de paragraphe par un caractère qui n'apparaît pas dans le fichier (exemple £).
Toujours avec Altsearch tu remplaces ensuite £END:VCARD£BEGIN:VCARD£ par une marque de paragraphe et pour le premier du supprimes BEGIN:VCARD£ et pour le dernier tu supprimes le £END:VCARD manuellement
Tu l'enregistre ensuite en txt.
Tu le renomme en csv.
Tu crée un classeur vide et tu ouvres le csv en choisissant £ comme séparateur.
Tu auras encore un peu de travail car toutes les lignes ne comporte pas le même nombre de colonnes suivant les infos des contacts.
Bon courage
Claude

----- Mail original -----

De: "prog amateur" <prog.amateur@free.fr>
À: "Isa&ric" <isaric.co@free.fr>, "Libreoffice LiBo-users" <users@fr.libreoffice.org>
Envoyé: Mercredi 29 Septembre 2021 08:26:05
Objet: Re: [fr-users] ouvrir un fichier.vcf avec calc

Bonjour,
Une procédure pour résoudre ce problème;
Tu crée d'abord un fichier writer.
Tu ouvres ensuite ton fichier VCF
Avec l'extension Altsearch tu remplaces les fins de paragraphe par un
caractère qui n'apparaît pas dans le fichier (exemple £).
Toujours avec Altsearch tu remplaces ensuite £END:VCARD£BEGIN:VCARD£
par
une marque de paragraphe et pour le premier du supprimes BEGIN:VCARD£
et
pour le dernier tu supprimes le £END:VCARD manuellement
Tu l'enregistre ensuite en txt.
Tu le renomme en csv.
Tu crée un classeur vide et tu ouvres le csv en choisissant £ comme
séparateur.
Tu auras encore un peu de travail car toutes les lignes ne comporte
pas
le même nombre de colonnes suivant les infos des contacts.
Bon courage
Claude

Bonjour Claude,

Merci beaucoup pour ton aimable intervention et d'avoir essayé de
répondre au sujet ...

Néanmoins, j'attire ton attention sur le fait que si tu as une très grande
quantité (nbr : 300) de cartes de visite (*.vcf), il est réellement
impossible de réaliser un traitement manuel des données et il faut
passer par un système qui traite le flux en mode automatique ...

Voici l'explication détaillée :

https://webdata-scraping.com/vcard-to-csv-using-python-script/

le script sur Github :

https://github.com/nbeaver/vcard2csv

Bonne journée et merci pour ton aimable attention

Bien à toi

Bernard

Merci Claude

Je peux ouvrir directement le fichier.vcf avec Writer.
Je vois bien '>Édition>Rechercher et Remplacer...'

Chaque ligne est un retour à la ligne sans caractère spécial en fin de ligne à remplacer (avec >Édition>Rechercher et Remplacer...)

Je peux remplacer END:VCARD par £END:VCARD et
BEGIN:VCARD par £BEGIN:VCARD, mais entre les 2 il y a beaucoup de retours à la ligne
et je peux l'enregistrer directement en .txt

Chaque retour à la ligne me donne une ligne alors que je souhaite une ligne seulement après END:VCARD

Cordialement

Pour remplacer le retour à ligne par £ il vaut mieux passer par l'extension *altsearch*.

Bonjour,
Désolée de te contredire mais j'avais traité de cette façon les mails des 589 (à l'époque) communes de la Haute-Garonne.
Claude

Bonjour

Pour remplacer le retour à ligne par £ il vaut mieux passer par l'extension *altsearch*.

tu es sûr ? parce que souvent ceux qui privilégient Altsearch n'ont pas
vu que la recherche proposée nativement par LibreOffice faisait déjà
l'affaire.

Quand à la question d'origine. Généralement quand on exporte un carnet d'adresse, on a le choix du
format d'export. N'y a t il pas de possibilité d'obtenir directement un
export csv ?

Et si ça n'est pas le cas, il existe manifestement un script tout fait
pour... voire une commande (cf messages de Bernard) J'ai du mal à voir
du coup pourquoi vouloir se compliquer la vie

Claire

Bonjour,

Pourquoi s'embêter avec des sctipts, des shells et autres trucs de spécialistes, Google est ton ami !

Conversion en ligne : https://www.aconvert.com/fr/document/vcf-to-csv/

Bonne soirée

Je prends un peu le train en marche
J'ai cru voir au passage que c'était un carnet d'adresse Thunderbird . Et Thunderbird propose bien l'export en csv, on a même le choix du codage (UTF-8 ou autre), mais aussi du délimité TAB.
D'où une autre solution possible, si l'on n'a pas Thunderbird : importer le vcf dans TB puis l'exporter en CSV

----- Mail original -----

De: "Jean-Michel COSTE" <jeanmichel.coste@free.fr>
À: users@fr.libreoffice.org
Envoyé: Mercredi 29 Septembre 2021 17:54:58
Objet: Re: [fr-users] ouvrir un fichier.vcf avec calc

Bonjour,

Pourquoi s'embêter avec des sctipts, des shells et autres trucs de
spécialistes, Google est ton ami !

Conversion en ligne :
https://www.aconvert.com/fr/document/vcf-to-csv/

Bonne soirée

Bonjour Jean-Michel,

Merci d'avoir proposé la solution en ligne, mais
elle n'est pas du tout "ePrivacy compliant" ...

Je ne sais pas comment sont récupérées les données
et si le cloud act s'applique également par rapport
à la solution hébergée ...

Documentation sur le Cloud Act :

https://www.justice.gov/dag/cloudact

https://fr.wikipedia.org/wiki/CLOUD_Act

Google, is not my friend :

https://www.zdnet.com/article/google-is-not-your-friend/

https://www.reddit.com/r/OrturLaserUsers/comments/pxtt2y/google_is_not_my_friend_only_one_hit_for_this/

Merci de bien vouloir faire la part des choses et respecter
tant soit peut le RGPD et vous êtes responsables des données
qui vous ont étés confiés au point de vue pénal ...

Merci pour votre aimable attention

Bien à vous

Bernard

Je serais dans la liste exportée en vcf, je n'aurais pas tellement envie qu'une personne qui a mes coordonnées utilise un outil en ligne dont je ne sais pas ce qu'il fait des données... Déjà que les labos savent fuiter les données. J'éviterai plus.

Au final
Soit on a peur d'une commande qui est donnée complètement et on passe par Thunderbird
Soit on veut bien utiliser une commande et on le fait.

En gros on a déjà les réponses...

Claire Legroux

Déjà pour Claire, je ne suis pas surE, et oui ! Claude est un prénom épicène .
Et ensuite pour avoir travaillé dans un milieu très sécurisé, je sais que l'on fait pas toujours ce que l'on veut. Les conversions en ligne sont à proscrire pour respecter le RGPD (d'ailleurs ce genre de site est inaccessible) et si l'on doit traiter un fichier vcf et que l'on n'a pas Thunderbird on ne peut pas décider de l'installer.
Je n'ai fait qu'essayer de répondre à la question posée avec les informations données.
Claude

Bonjour,

Veux tu l'ouvrir directement comme ça ou bien peux-tu ajouter une formule dans une colonne pour retranscrire la vCard ?

Peux-tu joindre un fichier de base avec 3-4 vcards ?
Par https://www.cjoint.com/ par exemple.

Merci Claude, bravos !

Voici ta procédure que j’ai adaptée :
J’ai un carnet.vcf de type

« /BEGIN:VCARD/
/VERSION:4.0/
/PRODID:-//Sabre//Sabre VObject 4.3.0//EN/
/UID:.../ /CATEGORIES:.../
/FN:.../
/N:...;...;;;/
/TEL;TYPE=CELL:+33 .../
/NOTE:.../
/REV:20210209T081703Z/ /X-THUNDERBIRD-ETAG:"..."/ /END:VCARD/ /BEGIN:VCARD/
… »

J’installe l'extension ‘Alternative Find & Replace for Writer (AltSearch) <https://extensions.libreoffice.org/en/extensions/show/alternative-dialog-find-replace-for-writer>’ dans LibreOffice writer.

J’ouvre carnet.vcf LibreOffice writer
>>Alt. Recherche et remplacer...
remplacer → les fins de paragraphe par un caractère qui n'apparaît pas dans le fichier (exemple £).

Ce qui donne pour « Rechercher » : $
et pour « Remplacer » : £
Lancer → Tout remplacer
Patience, avec Boucles/paragraphes = plus de15000 cela dure plusieurs heures

Puis, toujours avec Altsearch on remplace « £END:VCARD £BEGIN:VCARD £ » ou (« £END:VCARD£BEGIN:VCARD£ » suivant le cas) par une marque de paragraphe

Ce qui donne pour « Rechercher » : £END:VCARD £BEGIN:VCARD £
et pour « Remplacer » : \p

Ensuite à supprimer manuellement :
le premier BEGIN:VCARD £
et le dernier £END:VCARD

On enregistre carnet.txt.
On le renomme en carnet.csv.
On ouvre le csv et dans la fenêtre « Import de texte - ... »
>option de séparateur
Je coche Point-virgule, espace et dans Autre je mets £

Résultat dans Calc

*les deux fichiers de contacts extraits à partir de Framagenda et du smartphone sont différents*

*Les £ et \p nous donne bien le nombre de fiches 1285 pour l’un et 1284 pour l’autre
**Les****fichiers****sont bien**généré **et on semble retrouver les éléments.*
*L’ouverture des .cvs avec « Calc » ne donne pas un résultat terrible*.

*Les résultats donne des fiches du genre **du fichier .txt*
*Paragraphe **194 (du 1284, **unicode UFT-8**)*
*VERSION:2.1 £N:nom;prénom;;; £FN:nom prénom £EMAIL;HOME:...@gmail.com £ADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;=.=.=.; £BDAY:19..-..-.. £X-CUSTOM(CHARSET=UTF-8,ENCODING=QUOTED-PRINTABLE,whatsapp):...@orange.fr*

*Pour la même fiche*
*Paragraphe **1006 (du 1285)*
*VERSION:4.0£PRODID:+//IDN bitfire.at//DAVx5/3.2.1-ose ez-vcard/0.10.6£UID:...CATEGORIES:F...£FN:nom prénom£N:nom;prénom;;;£BDAY:19…...£GENDER:F£EMAIL;TYPE=home:...@gmail.com£ADR;TYPE=home:;;adresse;£IMPP:whatsapp:...@orange.fr£REV:...-THUNDERBIRD-ETAG:"…."*

*Pour l’ouverture du CVS*
*Je vois apparaître trop de colonne**s**pour 1285 (il s’ouvre quand même)*
*et pour le 1284 je vois beaucoup de **CHARSET=UTF-8*
*ensuite même en faisant un tri la comparaison n’est pas possible autrement que ligne par ligne**:slightly_frowning_face:*

Bonjour,

Je te propose une solution juste avec une formule Calc...

Envoie-moi un fichier type de 3-4 cartes dans un fichier VC f
(par cjoint.com)
Et dis-moi combien tu as de cartes à gérer au total dans ton VCF, je dupliquerai pour avoir la quantité.

Merci Claude, bravos !

Voici ta procédure que j’ai adaptée :
J’ai un carnet.vcf de type

J’installe l'extension ‘Alternative Find & Replace for Writer (AltSearch)

[...]

Merci Bernard
Je me suis penché sur la proposition de Claude !

Merci Bernard !

Oui j'ai plus de 300 fiches 1280...
Ta méthode décrite ici me dépasse trop...

&ric

Merci Claire
Je suis dépassé par les propositions j'ai tout de même essayé la méthode de Claude (voir la réponse que j'ai posté...).

&ric

Bonsoir,

Merci Claude, bravos !

Effectivement, le convertisseur en ligne pour ce genre de travail, ce n'est pas à recommander.

En cherchant un peu mieux, une macro existe pour faire ce travail :

https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=40815

Bonne soirée