Aller au contenu

Convertir ABCDDB en CSV

Exportez les données d’Apple Contacts au format CSV via des vCards pour les feuilles de calcul, les CRM et les importations de contacts.

Créer des fichiers CSV en ligne

Nous ne savons pas encore lire les fichiers ABCDDB, cette conversion n’est donc pas proposée. Si vous pouvez exporter votre travail dans l’un de ces formats ou d’autres, nous en ferons un CSV :

Vous voulez convertir ABCDDB en CSV ?

Dites-le-nous. Nous choisissons les prochaines conversions à ajouter selon l'intérêt.

Comment convertir abcddb en fichier csv

Les logiciels de tableur, de CRM et de listes de diffusion ne peuvent généralement pas ouvrir directement la base de données interne ABCDDB d’Apple ; les contacts doivent donc d’abord être exportés dans un format portable. La conversion des vCards exportées en CSV rend les enregistrements utilisables dans les applications qui exigent des lignes et des colonnes.

Qu’est-ce que le format ABCDDB ?

ABCDDB est le format de base de données interne utilisé par macOS Address Book et Contacts. Un nom de fichier courant est AddressBook-v22.abcddb, généralement situé sous ~/Library/Application Support/AddressBook/ ; le nom de fichier exact, le schéma et l’emplacement varient selon la version de macOS.

Il s’agit d’une base de données d’application basée sur SQLite, et non d’un format d’échange de contacts. Le dossier AddressBook environnant peut contenir des photos de contacts, des index, des données de compte, des métadonnées et d’autres fichiers. Ne renommez pas le fichier en .csv et ne modifiez pas ses tables SQLite, sauf si vous effectuez une récupération de données spécialisée ; l’extraction directe de la base de données peut révéler des détails privés du schéma et produire des contacts incomplets, dupliqués ou incorrectement liés.

Qu’est-ce que le format CSV ?

CSV représente un tableau sous forme d’enregistrements séparés par des lignes et de champs séparés par un délimiteur, généralement une virgule. Les applications de tableur, les CRM, les bases de données, les systèmes de listes de diffusion et de nombreux outils d’importation de contacts l’acceptent.

CSV peut contenir des valeurs courantes telles que les noms, les organisations, les intitulés de poste, les numéros de téléphone, les adresses e-mail, les adresses postales et les notes. Il ne possède aucune norme universelle pour les champs, les libellés, l’encodage ou l’échappement et ne peut pas conserver nativement les photos de contacts, les groupes, les fiches liées, les métadonnées de compte ou chaque champ personnalisé d’Apple.

Comment convertir les contacts

Exporter des vCards depuis Contacts

  1. Quittez Contacts et sauvegardez l’intégralité du dossier ~/Library/Application Support/AddressBook/, plutôt que de vous fier à une copie d’un seul fichier de base de données.
  2. Ouvrez Contacts sur le Mac contenant les enregistrements. Si les contacts appartiennent à iCloud, Exchange, Google ou à un autre compte, attendez la fin de la synchronisation.
  3. Sélectionnez les fiches requises, ou appuyez sur Command-A pour sélectionner toutes les fiches.
  4. Choisissez File → Export → Export vCard et enregistrez le fichier .vcf obtenu.
  5. Convertissez le fichier .vcf en CSV à l’aide d’un utilitaire ou d’un script local. Les applications de bureau de conversion vCard vers CSV peuvent fournir un mappage des champs ; un script local offre davantage de contrôle et évite de téléverser des données personnelles de contacts.

Pour une exportation de petite taille et non sensible, des services en ligne tels que CloudConvert ou Convertio peuvent fournir une conversion de VCF vers CSV. Vérifiez que le service prend actuellement en charge les fichiers .vcf en entrée et les fichiers CSV en sortie, et consultez ses conditions de conservation et de suppression avant de téléverser un carnet d’adresses.

Convertir des vCards localement avec Python

Installez l’analyseur :

python3 -m pip install vobject

Enregistrez le contenu suivant sous le nom vcf_to_csv.py. Il lit les propriétés standard de vCard correspondant au nom, à l’organisation, à l’adresse, à l’e-mail, au téléphone et à la note, puis écrit un fichier CSV UTF-8 :

import csv
import sys
import vobject

source, destination = sys.argv[1], sys.argv[2]
fields = [
    "first_name", "last_name", "organization", "title",
    "email", "phone", "street", "city", "region", "postal_code",
    "country", "note"
]

def items(card, name):
    return card.contents.get(name, [])

def text(value):
    if isinstance(value, (list, tuple)):
        return ", ".join(str(x) for x in value)
    return str(value) if value is not None else ""

def first(card, name):
    values = items(card, name)
    return text(values[0].value) if values else ""

def name_parts(card):
    values = items(card, "n")
    if not values:
        return "", ""
    name = values[0].value
    return text(name.given), text(name.family)

with open(source, encoding="utf-8") as handle:
    cards = list(vobject.readComponents(handle.read()))

with open(destination, "w", newline="", encoding="utf-8-sig") as output:
    writer = csv.DictWriter(output, fieldnames=fields)
    writer.writeheader()
    for card in cards:
        given, family = name_parts(card)
        addresses = items(card, "adr")
        address = addresses[0].value if addresses else None
        writer.writerow({
            "first_name": given,
            "last_name": family,
            "organization": first(card, "org"),
            "title": first(card, "title"),
            "email": "; ".join(text(x.value) for x in items(card, "email")),
            "phone": "; ".join(text(x.value) for x in items(card, "tel")),
            "street": text(address.street) if address else "",
            "city": text(address.city) if address else "",
            "region": text(address.region) if address else "",
            "postal_code": text(address.code) if address else "",
            "country": text(address.country) if address else "",
            "note": first(card, "note"),
        })

Exécutez-le avec :

python3 vcf_to_csv.py contacts.vcf contacts.csv

Lors de l’importation de contacts.csv, sélectionnez l’encodage UTF-8 et la virgule comme délimiteur si l’application de destination le demande. Le BOM UTF-8 utilisé par le script aide certaines versions de Microsoft Excel à détecter correctement les caractères non ASCII.

Limites de qualité et de compatibilité

Le script combine plusieurs adresses e-mail et numéros de téléphone dans un même champ, séparés par des points-virgules. Si la destination exige des colonnes distinctes, modifiez le script afin d’écrire des champs tels que email_1, email_2, phone_1 et phone_2.

Seule la première adresse postale est écrite. Les libellés d’adresse, les adresses supplémentaires, les groupes de contacts, les photos, les anniversaires, les URL, les relations, les champs personnalisés et certaines métadonnées propres aux comptes sont omis, à moins d’étendre le script ou le schéma de destination.

Après l’importation, vérifiez les noms, les numéros de téléphone internationaux, les adresses multilignes, les libellés, les fiches en double, les caractères non ASCII et les champs vides. CSV ne possède pas de schéma fixe pour les contacts ; les règles de mappage des champs de l’application cible déterminent donc la manière dont chaque colonne est interprétée.

Les informations sur les extensions et les types de fichiers sont fournies par File-Extensions.org

Autres conversions de fichiers .abcddb

Conversion vers .csv
depuis d'autres formats

Partager sur les réseaux sociaux :

Déjà téléchargé

Ce fichier a déjà été téléchargé. Pour protéger votre vie privée, nous l’avons supprimé de notre serveur juste après le téléchargement, il ne peut donc pas être téléchargé à nouveau. Pour l’obtenir encore une fois, convertissez de nouveau le fichier.