跳到主内容
UniKit

手机通讯录批量导入

把粘贴的「姓名,手机号」或纯手机号列表批量转成可导入手机的 vCard 3.0(.vcf)文本:自动清洗号码、去重、无姓名自动命名,可选校验中国大陆 11 位手机号,全程在浏览器本地完成。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

号码列表

每行一条:可以写「姓名,手机号」,也可以只写手机号。姓名与号码之间支持英文/中文逗号、分号或制表符(从 Excel 直接粘贴即可),号码里的空格、横线、括号会自动去掉。

生成选项
校验中国大陆手机号开启后只接受 1[3-9] 开头的 11 位号码,其余按「非法号码处理」处理。
号码去重同一号码只保留第一次出现的位置。
折叠长行按 75 字节折行,续行以一个空格开头。个别老设备才需要开启。

vCard 3.0 输出

UTF-8 编码、CRLF 行结束,保存为 .vcf 后可直接导入 iOS / Android 通讯录。

粘贴号码后即可看到 vCard 内容

卡片数: 0 · 号码数: 0 · 跳过: 0 · 去重: 0 · 输出字节: 0

这个工具能做什么

  • 把从 Excel、聊天记录或表格里粘出来的「姓名 + 手机号」清单,一次性转成可以导入手机的 .vcf 文件
  • 号码里混着空格、横线、括号、全角数字或 +86 前缀时,先统一清洗再生成 vCard
  • 给客户名单、活动报名表批量建联系人:自动去重、无姓名时按序号命名,避免导入时出现重名空卡

示例

输入

张三,13800138000
李四,139-0013-9001

输出

BEGIN:VCARD
VERSION:3.0
N:张;三;;;
FN:张三
TEL;TYPE=CELL:13800138000
END:VCARD
BEGIN:VCARD
VERSION:3.0
N:李;四;;;
FN:李四
TEL;TYPE=CELL:13900139001
END:VCARD

默认选项下的真实输出:UTF-8、CRLF 行结束,号码里的横线被清洗掉,N 字段按「首字为姓」拆分。

常见问题

生成的文件是什么编码?手机上能直接导入吗?

输出是 UTF-8(不带 BOM)、CRLF 行结束的 vCard 3.0 文本,保存为 .vcf 后 iOS 用「文件」App 点开即可加入通讯录,Android 在联系人 App 里选「导入 / 从文件导入」。少数老设备对超过 75 字节的长行挑剔,此时勾选「折叠长行」即可;卡片本身不分行也可以正常导入。

我的号码会被上传吗?

不会。整个转换在浏览器本地用纯函数完成,没有网络请求,也不会写入任何存储;关闭页面数据就没了。

什么号码算「非法」?清洗都做了什么?

清洗会去掉空格、横线、括号、点号,把全角数字转成半角,并把 +86、0086、86 前缀归一成 11 位本地号码。开启「校验中国大陆手机号」后,只有 1[3-9] 开头的 11 位号码会被写入,其余按「非法号码处理」跳过或报错;不开启校验时,只要求该行能解析出数字。

N 字段为什么是「N:张;三;;;」?复姓会不会拆错?

vCard 的 N 字段是「姓;名;中间名;前缀;后缀」。本站对不含空格的姓名按首字为姓拆分(张三 → N:张;三;;;),含空格的按「名 姓」拆成 N:姓;名;;;。复姓(如「欧阳」)会被拆成「欧 / 阳…」,只影响部分手机通讯录按姓氏排序,FN 里始终是完整姓名,卡片信息不会丢。

一张卡能放多个号码吗?重复号码怎么处理?

「每张卡号码数」可以设 1–5:大于 1 时把连续的多个号码合并到同一张卡片,输出多个 TEL;TYPE=CELL 行。默认开启去重,同一号码只保留第一次出现的位置,被去掉的条数会显示在「去重」统计里。

关键词:vcf生成手机号转vcf通讯录批量导入vCard 3.0批量导入联系人手机号码格式化vcf generatorvcard 3.0phone list to vcfcontacts import file

同类工具