Przejdź do treści

Konwertuj ABCDDB na CSV

Eksportuj dane Apple Contacts do CSV za pośrednictwem vCards na potrzeby arkuszy kalkulacyjnych, systemów CRM i importu kontaktów.

Twórz pliki CSV online

Nie potrafimy jeszcze odczytać plików ABCDDB, więc tej konwersji nie oferujemy. Jeśli możesz wyeksportować swoją pracę do jednego z tych lub innych formatów, zrobimy z niego CSV:

Chcesz przekonwertować ABCDDB na CSV?

Daj nam znać. Kolejne konwersje do dodania wybieramy według zainteresowania.

Jak konwertować abcddb do csv

Oprogramowanie do arkuszy kalkulacyjnych, systemy CRM i programy do obsługi list mailingowych zazwyczaj nie mogą bezpośrednio otworzyć wewnętrznej bazy danych ABCDDB firmy Apple, dlatego najpierw trzeba wyeksportować kontakty do przenośnego formatu. Konwersja wyeksportowanych vCard do CSV sprawia, że rekordy mogą być używane w aplikacjach wymagających wierszy i kolumn.

Czym jest format ABCDDB

ABCDDB to wewnętrzny format bazy danych używany przez macOS Address Book i Contacts. Często spotykana nazwa pliku to AddressBook-v22.abcddb, zwykle w lokalizacji ~/Library/Application Support/AddressBook/; dokładna nazwa pliku, schemat i lokalizacja różnią się w zależności od wersji macOS.

Jest to baza danych aplikacji oparta na SQLite, a nie format wymiany kontaktów. Powiązany folder AddressBook może zawierać zdjęcia kontaktów, indeksy, dane kont, metadane i inne pliki. Nie zmieniaj nazwy pliku na .csv ani nie edytuj jego tabel SQLite, chyba że wykonujesz specjalistyczne odzyskiwanie danych; bezpośrednie wyodrębnianie danych z bazy może ujawnić prywatne szczegóły schematu i skutkować niekompletnymi, zduplikowanymi lub nieprawidłowo powiązanymi kontaktami.

Czym jest format CSV

CSV przedstawia tabelę jako rekordy oddzielone wierszami oraz pola oddzielone separatorem, zazwyczaj przecinkiem. Akceptują go aplikacje do arkuszy kalkulacyjnych, systemy CRM, bazy danych, systemy obsługi list mailingowych i wiele narzędzi do importowania kontaktów.

CSV może zawierać typowe wartości, takie jak imiona i nazwiska, organizacje, stanowiska, numery telefonów, adresy e-mail, adresy pocztowe i notatki. Nie ma uniwersalnego standardu pól, etykiet, kodowania ani znaków ucieczki i nie może natywnie zachować zdjęć kontaktów, grup, połączonych wizytówek, metadanych kont ani wszystkich niestandardowych pól Apple.

Jak konwertować kontakty

Eksportowanie vCard z Contacts

  1. Zamknij Contacts i utwórz kopię zapasową całego folderu ~/Library/Application Support/AddressBook/, zamiast polegać na kopii tylko jednego pliku bazy danych.
  2. Otwórz Contacts na Macu zawierającym rekordy. Jeśli kontakty należą do iCloud, Exchange, Google lub innego konta, zaczekaj na zakończenie synchronizacji.
  3. Wybierz wymagane wizytówki albo naciśnij Command-A, aby zaznaczyć wszystkie wizytówki.
  4. Wybierz File → Export → Export vCard i zapisz wynikowy plik .vcf.
  5. Przekonwertuj plik .vcf do CSV za pomocą lokalnego narzędzia lub skryptu. Komputerowe aplikacje do konwersji vCard do CSV mogą oferować mapowanie pól; skrypt lokalny zapewnia większą kontrolę i pozwala uniknąć przesyłania danych osobowych kontaktów.

W przypadku niewielkiego eksportu niezawierającego danych wrażliwych usługi online, takie jak CloudConvert lub Convertio, mogą umożliwiać konwersję VCF do CSV. Przed przesłaniem książki adresowej sprawdź, czy usługa obecnie obsługuje dane wejściowe .vcf i dane wyjściowe CSV, oraz zapoznaj się z warunkami przechowywania i usuwania danych.

Lokalna konwersja vCard za pomocą Python

Zainstaluj parser:

python3 -m pip install vobject

Zapisz poniższy kod jako vcf_to_csv.py. Odczytuje on standardowe właściwości vCard dotyczące nazwy, organizacji, adresu, adresu e-mail, telefonu i notatki, a następnie zapisuje plik CSV w kodowaniu 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"),
        })

Uruchom go za pomocą:

python3 vcf_to_csv.py contacts.vcf contacts.csv

Podczas importowania contacts.csv wybierz kodowanie UTF-8 i przecinek jako separator, jeśli aplikacja docelowa o to poprosi. BOM UTF-8 używany przez skrypt pomaga niektórym wersjom Microsoft Excel poprawnie wykrywać znaki spoza ASCII.

Ograniczenia jakości i zgodności

Skrypt łączy wiele adresów e-mail i numerów telefonów w jednym polu, oddzielając je średnikami. Jeśli aplikacja docelowa wymaga osobnych kolumn, zmień skrypt tak, aby zapisywał pola takie jak email_1, email_2, phone_1 i phone_2.

Zapisywany jest tylko pierwszy adres pocztowy. Etykiety adresów, dodatkowe adresy, grupy kontaktów, zdjęcia, daty urodzin, adresy URL, relacje, pola niestandardowe i niektóre metadane specyficzne dla konta są pomijane, chyba że skrypt lub schemat docelowy zostaną rozszerzone.

Po imporcie sprawdź imiona i nazwiska, międzynarodowe numery telefonów, wielowierszowe adresy, etykiety, zduplikowane wizytówki, znaki spoza ASCII i puste pola. CSV nie ma stałego schematu kontaktów, dlatego reguły mapowania pól aplikacji docelowej określają sposób interpretacji poszczególnych kolumn.

Informacje o rozszerzeniach i typach plików zapewnia File-Extensions.org

Dodatkowe formaty dla konwersji pliku
abcddb

Konwersja do .csv
z innych formatów

Udostępnij w mediach społecznościowych:

Już pobrano

Ten plik został już pobrany. Ze względu na prywatność usunęliśmy go z serwera zaraz po pobraniu, więc nie można go pobrać ponownie. Jeśli potrzebujesz go jeszcze raz, przekonwertuj plik ponownie.