Vai al contenuto

Converti ABCDDB in CSV

Esporta i dati di Apple Contacts in CSV tramite vCards per fogli di calcolo, CRM e importazioni di contatti.

Crea file CSV online

Non sappiamo ancora leggere i file ABCDDB, quindi questa conversione non è disponibile. Se puoi esportare il tuo lavoro in uno di questi formati o in altri, ne ricaviamo un CSV:

Vuoi convertire ABCDDB in CSV?

Faccelo sapere. Scegliamo le prossime conversioni da aggiungere in base all'interesse.

Come convertire abcddb in csv file

I software per fogli di calcolo, CRM e mailing list generalmente non possono aprire direttamente il database interno ABCDDB di Apple, quindi i contatti devono prima essere esportati in un formato portatile. La conversione dei vCard esportati in CSV rende i record utilizzabili nelle applicazioni che richiedono righe e colonne.

Cos'è il formato ABCDDB

ABCDDB è il formato di database interno utilizzato da macOS Address Book e Contacts. Un nome file comune è AddressBook-v22.abcddb, generalmente all'interno di ~/Library/Application Support/AddressBook/; il nome file, lo schema e la posizione esatti variano in base alla versione di macOS.

È un database applicativo basato su SQLite, non un formato per lo scambio di contatti. La cartella AddressBook circostante può contenere foto dei contatti, indici, dati degli account, metadati e altri file. Non rinominare il file in .csv e non modificare le relative tabelle SQLite, a meno che non si stia eseguendo un recupero dati specializzato; l'estrazione diretta dal database può esporre dettagli privati dello schema e produrre contatti incompleti, duplicati o collegati in modo errato.

Cos'è il formato CSV

CSV rappresenta una tabella come record separati da righe e campi separati da un delimitatore, normalmente una virgola. Le applicazioni per fogli di calcolo, i CRM, i database, i sistemi di mailing list e molti strumenti di importazione dei contatti lo accettano.

CSV può contenere valori comuni come nomi, organizzazioni, qualifiche professionali, numeri di telefono, indirizzi email, indirizzi postali e note. Non dispone di uno standard universale per campi, etichette, codifica o caratteri di escape e non può conservare nativamente foto dei contatti, gruppi, schede collegate, metadati degli account o tutti i campi personalizzati di Apple.

Come convertire i contatti

Esportare vCard da Contacts

  1. Esci da Contacts ed esegui un backup dell'intera cartella ~/Library/Application Support/AddressBook/, invece di affidarti alla copia di un singolo file di database.
  2. Apri Contacts sul Mac contenente i record. Se i contatti appartengono a iCloud, Exchange, Google o a un altro account, attendi il completamento della sincronizzazione.
  3. Seleziona le schede desiderate oppure premi Command-A per selezionarle tutte.
  4. Scegli File → Export → Export vCard e salva il file .vcf risultante.
  5. Converti il file .vcf in CSV con un'utilità o uno script locale. Le applicazioni desktop per la conversione da vCard a CSV possono offrire la mappatura dei campi; uno script locale garantisce un maggiore controllo ed evita di caricare online i dati personali dei contatti.

Per un'esportazione di piccole dimensioni e non sensibile, servizi online come CloudConvert o Convertio possono fornire la conversione da VCF a CSV. Verifica che il servizio supporti attualmente l'input .vcf e l'output CSV e controlla i termini relativi alla conservazione e all'eliminazione dei dati prima di caricare una rubrica.

Convertire localmente i vCard con Python

Installa il parser:

python3 -m pip install vobject

Salva quanto segue come vcf_to_csv.py. Legge le proprietà standard vCard relative a nome, organizzazione, indirizzo, email, telefono e note e scrive un file CSV codificato in 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"),
        })

Eseguilo con:

python3 vcf_to_csv.py contacts.vcf contacts.csv

Quando importi contacts.csv, seleziona la codifica UTF-8 e la virgola come delimitatore, se l'applicazione di destinazione lo richiede. Il BOM UTF-8 utilizzato dallo script aiuta alcune versioni di Microsoft Excel a rilevare correttamente i caratteri non ASCII.

Limiti di qualità e compatibilità

Lo script combina più indirizzi email e numeri di telefono in un unico campo, separandoli con punti e virgola. Se la destinazione richiede colonne separate, modifica lo script in modo che scriva campi come email_1, email_2, phone_1 e phone_2.

Viene scritto solo il primo indirizzo postale. Le etichette degli indirizzi, gli indirizzi aggiuntivi, i gruppi di contatti, le foto, i compleanni, gli URL, le relazioni, i campi personalizzati e alcuni metadati specifici degli account vengono omessi, a meno che lo script o lo schema di destinazione non vengano estesi.

Controlla i nomi, i numeri di telefono internazionali, gli indirizzi su più righe, le etichette, le schede duplicate, i caratteri non ASCII e i campi vuoti dopo l'importazione. CSV non dispone di uno schema fisso per i contatti, quindi le regole di mappatura dei campi dell'applicazione di destinazione determinano il modo in cui viene interpretata ciascuna colonna.

Le informazioni su estensioni e tipi di file sono fornite da File-Extensions.org

Altre conversioni di file .abcddb

Conversione in .csv
da altri formati

Condividi sui social media:

Già scaricato

Questo file è già stato scaricato. Per tutelare la tua privacy lo abbiamo eliminato dal nostro server subito dopo il download, quindi non può essere scaricato di nuovo. Se ti serve ancora, converti di nuovo il file.