工作中经常批量导入联系人,比如红米手机就不能直接导入excel表。如下图:
通过网络研究了一下VCF文件的格式,大致如下:
BEGIN:VCARD
VERSION:3.0
N;CHARSET=UTF-8:张三
FN;CHARSET=UTF-8:张三
TEL;TYPE=CELL:13012341234
END:VCARD
于是,我们用python来写一个小程序,实现这个功能。我们分两步来写。
第一个文件,是生成一个excel模板,方便我们把已有的联系人及电话号码复制到这个模板上。
import openpyxl
# 生成模板
def create_template():
# 创建一个工作簿
workbook = openpyxl.Workbook()
# 选择活动工作表
sheet = workbook.active
# 设置表头
sheet['A1'] = '姓名'
sheet['B1'] = '电话'
# 保存到文件
workbook.save('VCF生成器模板.xlsx')
if __name__ == '__main__':
create_template()
第二个文件,是读取刚才的excel模板,并按照VCF文件的格式,生成vcf文件:
import openpyxl
import datetime
# 读取联系人,并生成VCF文件
def create_vcf():
# 使用openpyxl.load_workbook()函数打开Excel文件
workbook = openpyxl.load_workbook('VCF生成器模板.xlsx')
# 选择工作表(sheet)
sheet = workbook.active
# 返回值
ret = ''
# VCF模板
vcf = '''BEGIN:VCARD
VERSION:3.0
N;CHARSET=UTF-8:{}
FN;CHARSET=UTF-8:{}
TEL;TYPE=CELL:{}
END:VCARD\r'''
# 遍历工作表中的单元格并获取内容
for row in sheet.iter_rows(min_row=2):
ret += vcf.format(row[0].value, row[0].value, row[1].value)
# 获取当前日期和时间
current_date = datetime.datetime.now()
# 将日期格式化为字符串
formatted_date = current_date.strftime("%Y%m%d")
with open("{}联系人.vcf".format(formatted_date), "w", encoding="utf-8") as f:
f.write(ret)
if __name__ == '__main__':
create_vcf()
为了方便分享给他人使用,生成两个exe文件:
有何建议请留言。
本来想上传分享给大家,结果CSDN不允许。需要的留言。