vcf通讯录转excel


    老父亲从手机导出了一个vcf格式的通讯录,让我帮他转成excel格式的好打印出来,我根据百度捣鼓了半天都没有成功。生气了,还是伟人说得好,自己动手,丰衣足食。

    用文本编辑器打开vcf一看,就是文本格式,我只需要把它转换成csv格式,然后就可以导入到Excel中了,cvf中每个名片的格式大概如下:

BEGIN:VCARD
VERSION:3.0
N:x;xx;;;
FN:xxx
TEL;TYPE=CELL:13333333333
TEL;TYPE=HOME:01088887777

END:VCARD

  从内容看,只需要取"FN:"、"TEL"打头的字段,遇到"END"再开始下一个名片

    Python代码如下:

with open("f:/contacts.vcf", 'r') as rf, open('e:/contacts.csv', 'w') as wf:
    content = ['', '', '', '']
    tel = 0
    for line in rf.readlines():
        if line.startswith('FN:'):
            content[0] = line[3:].strip()
        elif line.startswith('TEL'):
            if tel > 2:
                continue
            pos = line.find(':')
            content[tel + 1] = line[pos + 1:].strip()
            tel = tel + 1
        elif line.startswith('END'):
            str = ','.join(content) + '\n'
            wf.write(str)
            content = ['', '', '', '']
            tel = 0
E盘根目录下csv就出来了,然后打开Excel,数据->导入->编辑,把电话号码的那几列都改成文本,否则不是变成科学计数法就是电话号码最前面的0会丢,然后确定、保存,结束!
用途:使用excel编辑联系人,导出vcf文件,导入M8通讯录 ------------------------------------------------------------ 修正初始行定位问题 ------------------------------------------------------------ 功能: 1、vcf格式名片文件批量导入 2、自由编辑(Excel自身功能) 3、批量导出vcf格式文件 4、支持备注QUOTED-PRINTABLE编码解码 5、支持项目多值(多个工作电话号码,传真,QQ等) 备注: 1、关于备注项目的换行。 M8中录入带换行的备注,备份后,重新导入,换行丢失,可能是换行符windows,unix格式未换的原因,估计是个M8系统Bug 2、关于相片 前期测试,将相片数据的base64位码导入excel单元格,由于数据太大,导入速度,处理速度无法满足要求。因本人不想在excel文件之外保存数据,因此此功能未实现,探索其它解决方案。 3、关于自定义铃声 M8导出的vcf文件,不含此项定义,无法通过vcf文件来实现。 4、关于vcf文件支持 以上功能,仅对M8系统(0.9.3.8)生成的vcf文件进行测试,因此无法确定是否对其它软件(设备)生成的vcf文件完全兼容。 使用说明 导入: 1、在M8上生成备份数据。进入到设备-系统-数据备份,选择备份,生成备份数据。 2、导入备份文件到Excel。连接USB数据线,点击Excel文件第一个工作表中的导入按钮,在打开文件对话框中,定位到M8/disk/backup/[日期时间]/contact目录,按ctrl+A,全选vcf文件,确定关闭对话框,完成文件导入。 导出: 1、完成数据录入编辑操作,点击Excel文件第一个工作表中的导出按钮,程序自动将文件生成到同位置的VCF_Backup目录下。 2、连接USB数据线,将VCF_Backup目录下的所有vcf文件复制到M8/disk/backup/[日期时间]/contact目录。(可以考虑清除原有的所有文件,如果没有此目录,请先执行M8备份操作) 3、断开USB数据线,执行M8数据恢复操作。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值