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
- Contacts et carnets d'adresses
- Aucune note pour l'instant.
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
- 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. - 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.
- Sélectionnez les fiches requises, ou appuyez sur
Command-Apour sélectionner toutes les fiches. - Choisissez File → Export → Export vCard et enregistrez le fichier
.vcfobtenu. - Convertissez le fichier
.vcfen 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