[工具]:四种方法批量创建通讯录(vcf)

13次阅读
没有评论

场景描述

假设手头通过识别或传输,有一份联系人表单(>100),需要逐个拨通联系,如何批量创建联系人
 [工具]:四种方法批量创建通讯录(vcf)

📘 方法一:手动编辑

VCF(vCard)文件是一种标准的电子名片格式,其内容通常以文本形式存储。VCF文件示例如下,不同的手机品牌格式略有不同,可导出对比再修改,此方法效率较低:

BEGIN:VCARD
VERSION:3.0
FN:张三
TEL;TYPE=CELL:1234567890
EMAIL:zhangsan@example.com
ORG:ABC公司
TITLE:经理
ADR:;;北京市海淀区
END:VCARD

在文本编辑器中,选择“另存为”,文件名设置为contacts.vcf,保存类型选择“所有文件”,编码选择“UTF-8”。

📘 方法二:在线转换

搜索引擎可以搜索到免费的在线工具,可以将CSV文件转换为vCard文件,需注意信息安全。

例如:CSV to vCard、CSV to vCard Converter

 [工具]:四种方法批量创建通讯录(vcf)

转换完成后,点击下载按钮,将生成的vCard文件保存,通讯录中导入即可。此方法最简便。

📘 方法三:AI辅助

可直接输入需求:表单转换为vcf通讯录即可。可以增加合并公司名、添加地址都需求。此方法也非常省心。

 [工具]:四种方法批量创建通讯录(vcf)

📘 方法四:Python实现

vobject库vobject是一个用于处理vCard和vCalendar的Python库。此方法适合超过100条以上记录,性价比才能体现。

  • FN字段:包含联系人的全名。
  • N字段:包含联系人的结构化姓名。
  • TEL字段:包含联系电话。
  • EMAIL字段:包含联系人的邮箱地址。
  • ORG字段:包含公司名称。
  • ADR字段:包含公司地址。
import csv
import vobject

def csv_to_vcard(csv_file, vcard_file):
    """
    Convert a CSV file to a VCF file.
    
    :param csv_file: Path to the CSV file containing contact information.
    :param vcard_file: Path to the output VCF file.
    """
    with open(csv_file, 'r', encoding='utf-8') as f:
        # Use csv.DictReader to read the CSV file into a dictionary
        reader = csv.DictReader(f)
        
        cards = []
        
        for row in reader:
            # Create a new vCard object
            card = vobject.vCard()
            
            # Add the full name (FN) field
            card.add('fn')
            card.fn.value = f"{row['联系人']} {row['平台名称']}"
            
            # Add the structured name (N) field
            card.add('n')
            card.n.value = vobject.vcard.Name(family=row['平台名称'], given=row['联系人'])
            
            # Add the phone number (TEL) field
            card.add('tel')
            card.tel.value = row['电话']
            card.tel.type_param = 'CELL'
            
            # Add the email address (EMAIL) field if available
            if '邮箱' in row and row['邮箱']:
                card.add('email')
                card.email.value = row['邮箱']
                card.email.type_param = 'INTERNET'
            
            # Add the organization (ORG) field
            card.add('org')
            card.org.value = [row['平台名称']]
            
            # Add the address (ADR) field
            card.add('adr')
            card.adr.value = vobject.vcard.Address(street=row['详细地址'], city='', region='', pcode='', country='')
            card.adr.type_param = 'WORK'
            
            # Append the vCard to the list
            cards.append(card)
        
        # Write all vCards to the VCF file
        with open(vcard_file, 'w', encoding='utf-8') as v:
            for card in cards:
                v.write(card.serialize())

# Example usage
csv_to_vcard('contacts.csv', 'contacts.vcf')
正文完
 0
评论(没有评论)