Přeskočit na obsah

Převod souboru ABCDDB do CSV

Exportujte data z Apple Contacts do CSV prostřednictvím vCards pro tabulkové procesory, CRM a import kontaktů.

Vytvořte soubory CSV online

Soubory ABCDDB zatím číst neumíme, takže tenhle převod nenabízíme. Pokud dokážete svou práci uložit do některého z těchto formátů nebo dalších, CSV z něj vyrobíme:

Chcete převádět ABCDDB na CSV?

Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.

Jak převést soubor abcddb do formátu csv

Software pro tabulky, CRM a mailingové seznamy obecně nedokáže přímo otevřít interní databázi ABCDDB společnosti Apple, takže kontakty je nejprve nutné exportovat do přenosného formátu. Převodem exportovaných vCard do formátu CSV se záznamy stanou použitelnými v aplikacích, které vyžadují řádky a sloupce.

Co je formát ABCDDB

ABCDDB je interní databázový formát používaný aplikacemi macOS Address Book a Contacts. Běžný název souboru je AddressBook-v22.abcddb, obvykle umístěný v ~/Library/Application Support/AddressBook/; přesný název souboru, schéma a umístění se liší podle verze macOS.

Jedná se o aplikační databázi založenou na SQLite, nikoli o formát pro výměnu kontaktů. Složka AddressBook může obsahovat fotografie kontaktů, indexy, data účtů, metadata a další soubory. Nepřejmenovávejte soubor na .csv ani neupravujte jeho tabulky SQLite, pokud neprovádíte specializovanou obnovu dat; přímá extrakce z databáze může odhalit podrobnosti privátního schématu a vést k neúplným, duplicitním nebo nesprávně propojeným kontaktům.

Co je formát CSV

CSV reprezentuje tabulku jako záznamy oddělené řádky a pole oddělená oddělovačem, obvykle čárkou. Přijímají jej tabulkové aplikace, CRM, databáze, systémy mailingových seznamů a mnoho nástrojů pro import kontaktů.

CSV může obsahovat běžné hodnoty, jako jsou jména, organizace, pracovní pozice, telefonní čísla, e-mailové adresy, poštovní adresy a poznámky. Nemá univerzální standard pro pole, popisky, kódování ani escapování a nativně nedokáže zachovat fotografie kontaktů, skupiny, propojené karty, metadata účtů ani všechna vlastní pole Apple.

Jak převést kontakty

Export vCard z Contacts

  1. Ukončete aplikaci Contacts a zálohujte celou složku ~/Library/Application Support/AddressBook/, místo abyste se spoléhali na kopii jediného databázového souboru.
  2. Otevřete Contacts na Macu obsahujícím záznamy. Pokud kontakty patří do účtu iCloud, Exchange, Google nebo jiného účtu, počkejte na dokončení synchronizace.
  3. Vyberte požadované karty nebo stisknutím Command-A vyberte všechny karty.
  4. Zvolte File → Export → Export vCard a uložte výsledný soubor .vcf.
  5. Převeďte soubor .vcf do formátu CSV pomocí lokálního nástroje nebo skriptu. Desktopové aplikace pro převod vCard do CSV mohou nabídnout mapování polí; lokální skript poskytuje větší kontrolu a zabraňuje nahrávání osobních kontaktních údajů.

U malého exportu bez citlivých údajů mohou převod VCF do CSV nabídnout online služby, jako jsou CloudConvert nebo Convertio. Ověřte, zda služba aktuálně podporuje vstup .vcf a výstup CSV, a před nahráním adresáře si pročtěte podmínky uchovávání a mazání dat.

Lokální převod vCard pomocí Pythonu

Nainstalujte parser:

python3 -m pip install vobject

Uložte následující kód jako vcf_to_csv.py. Načte standardní vlastnosti vCard pro jméno, organizaci, adresu, e-mail, telefon a poznámku a zapíše soubor CSV v kódování 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"),
        })

Spusťte jej pomocí:

python3 vcf_to_csv.py contacts.vcf contacts.csv

Při importu souboru contacts.csv vyberte kódování UTF-8 a jako oddělovač čárku, pokud se na to cílová aplikace zeptá. Značka UTF-8 BOM použitá skriptem pomáhá některým verzím Microsoft Excelu správně rozpoznat znaky mimo ASCII.

Omezení kvality a kompatibility

Skript kombinuje více e-mailových adres a telefonních čísel v jednom poli odděleném středníky. Pokud cílová aplikace vyžaduje samostatné sloupce, upravte skript tak, aby zapisoval pole jako email_1, email_2, phone_1 a phone_2.

Zapíše se pouze první poštovní adresa. Popisky adres, další adresy, skupiny kontaktů, fotografie, narozeniny, URL, vztahy, vlastní pole a některá metadata specifická pro účty se vynechají, pokud skript nebo schéma cílové aplikace nerozšíříte.

Po importu zkontrolujte jména, mezinárodní telefonní čísla, víceřádkové adresy, popisky, duplicitní karty, znaky mimo ASCII a prázdná pole. CSV nemá pevné schéma kontaktů, takže způsob interpretace jednotlivých sloupců určuje pravidla mapování polí cílové aplikace.

Informace o příponách a typech souborů poskytuje File-Extensions.org

Podobné .abcddb konverze

Konverze do .csv
z jiných formátů

Sdílejte na sociálních sítích:

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.