我常去技术大会和线下聚会,把自己的 App 展示给别人看。聊得投缘的时候,临别我喜欢递上一枚 NFC 标签,里面写着一个促销代码。用手机碰一下标签,App Store 就会打开,代码已经自动填好,App 直接就是你的了。
标签本身从来不是问题,问题在数量。每个促销代码都不一样,所以每枚标签都得有自己的链接,而我一次就想准备几百枚。在 App 里一枚一枚地写,到了这个量级根本行不通。这就是我把 CSV 批量写入做进 NFC.cool Tools 的原因:清单在 Mac 上做好,导出成 CSV,把文件传到手机上,然后把标签一枚接一枚地贴到手机上,App 会顺着表格一行一行往下写。到今天,我已经用这种方式写了几百枚标签。
下面是完整的流程,从电子表格一直讲到最后一枚标签。产品链接、序列号、Wi-Fi 密码,或者任何能填进一个单元格的东西,做法都一样。
CSV 批量写入到底做了什么
你把一个 CSV 文件交给 App,文件里的每一行就变成一枚标签。App 会先预览每枚标签上将要写入的内容,你点一下开始写入,然后把标签一枚接一枚地贴到手机上。写好的那一行会从文件里移除,所以屏幕上的列表永远是还没写的那些。你随时可以停下来,过后再接着写,隔几天也没关系。
如果你还从来没写过 NFC 标签,先看看我那篇用 iPhone 写入 NFC 标签的指南。这篇文章讲的,是怎么一次写很多枚。
第一步:在电脑上做好表格
打开 Numbers、Excel 或者 Google Sheets,在电脑上把清单做出来。这比在手机上折腾快得多,而且链接可以让表格帮你生成。
最简单的布局是只有一列,每行对应一枚标签。每一行,就是一枚标签将要写入的全部内容。一列产品链接长这样:
https://example.com/products/1001
https://example.com/products/1002
https://example.com/products/1003如果这些值只是编号或 ID 不同,就交给公式来生成这一列。输入第一个,往下一拖填充,不管清单多长,一下子就做完了。如果你手头已经有一份存着 ID 的文件,就用表格软件打开它,再用公式把固定的前半部分拼到前面。
App 会根据每个值的开头,自动选择对应的记录类型:
链接(以
https://、http://或www.开头)会写成 URL 记录。手机一碰,浏览器就会打开它。tel:、mailto:、sms:和geo:会写成对应的动作,这样一枚标签就能拨打电话、新建一封邮件或者打开一个位置。WIFI:T:WPA;S:MyNetwork;P:secret;;会写成 Wi-Fi 记录,和 Wi-Fi 二维码用的是同一种格式。有一个小坑:这串文字里含有分号,App 会以为你的文件是用分号分隔的,把它拆成好几段。在 App 里把分隔符设成逗号,这一行就能保持完整。shortcuts://会运行一个 iOS 快捷指令。其他所有内容都按纯文本写入。
每个值都要写在同一行里。文件是逐行读取的,一张跨了好几行的联系人名片,最后会被拆到好几枚标签上。
有两点要留意:
不要标题行。App 会把每一个非空行都当成内容。如果你的第一行写着“URL”,那第一枚标签里写进去的就是 URL 这个词。
空行没关系。空行会被跳过,值前后的空白也会被去掉。
一枚标签要装几条记录的时候
有时候一枚标签要装的不止一样东西,比如每个人的网站、电话和邮箱。这种情况就多加几列。在 App 里把分组依据选成按行,每一行就是一枚标签,每个单元格各成一条记录。选按列则正好相反,每一列变成一枚标签,适合你把表格反过来做的情况。如果文件只有一列,那就换成每个标签的行数这个设置,比如让三行合到一枚标签上,成为三条记录。
第二步:导出成 CSV
CSV 文件就是一个纯文本文件。表格里的一行就是文件里的一行,行内的单元格之间用逗号、分号或者制表符隔开。用 TextEdit 或记事本打开一个 CSV,你看到的就是 App 将要看到的东西。一张每人一条链接加一个电话号码的表格,导出之后长这样:
https://example.com/anna,tel:+4915112345678
https://example.com/ben,tel:+4915198765432格式和公式都不会被导出,留下来的只有值。下面分别说说怎么从 Numbers、Excel 和 Google Sheets 里导出这个文件。
Mac 上的 Numbers
选择文件,再选导出为,然后选 CSV。
如果文稿里有不止一个表格,Numbers 会问你是每个表格单独导出一个文件,还是合并成一个。你要的是一个表格对应一个文件。
不要勾选包括表格名称。否则 Numbers 会把表格名单独写成一行放进文件里,而这一行最后会被写到某枚标签上。
高级选项里的文本编码保持 Unicode(UTF-8)不动。
点下一步,给文件起个名字,再点导出。
关于 Numbers 有两点要说。一是每个新建的表格都自带一行底色不同的标题行,你在里面输入的任何内容都会和普通行一样被导出,所以要么留空,要么直接删掉。二是 Numbers 永远用逗号分隔。如果某个值里本身含有逗号,Numbers 会给它加上引号,而 App 不会把这些引号去掉。所以从 Numbers 导出时,值里别出现逗号。
Mac 或 Windows 上的 Excel
选择文件,再选另存为(有些版本叫“保存副本”)。
文件格式选 CSV UTF-8 (逗号分隔) (.csv)。
Excel 只会保存你当前打开的那个工作表,并且会提醒你格式将会丢失。确认就行,格式本来就用不上。
别看名字里写着“逗号分隔”,Excel 并不总是用逗号。它用的是系统区域设置里的列表分隔符,在德语、法语、荷兰语以及大多数其他欧洲地区的系统上,这个分隔符是分号,因为那里的逗号已经被拿去当小数点了。你什么都不用改,NFC.cool 会自动识别逗号、分号和制表符。而如果导出的正好是分号分隔的文件,你的值里含有逗号也没关系。
Google Sheets
选择文件,再选下载,然后选逗号分隔值 (.csv)。
只会导出当前的工作表,而且永远用逗号分隔。
传到手机之前,先检查一遍
导出的文件在传到手机之前,我都会先用文本编辑器打开看一眼。要确认的是:一行对应一枚标签,没有标题行,值的两边没有引号,逗号分隔的文件里也没有多出来的逗号。如果某个值非得含有逗号不可,就让 Excel 用分号分隔来导出,或者在 Numbers 里导出 TSV(制表符分隔),再把文件名改成以 .csv 结尾。在 iPhone 上,文件名无论如何都得以 .csv 结尾,因为文件选择器就是按这个后缀来筛选的。
第三步:把文件传到手机上
只要文件最后能出现在 iPhone 的“文件”App 里,或者出现在 Android 系统文件选择器能访问的位置,用什么方式都行。
用 AirDrop 把文件从 Mac 发到 iPhone,然后选择“存储到文件”。
iCloud Drive:在 Mac 上把 CSV 存进 iCloud Drive,手机上的“文件”App 里就能看到它。Google Drive 和 Dropbox 也一样,“文件”App 同样能浏览它们。
发一封邮件给自己,再把附件存下来。
Android:从笔记本电脑用 Quick Share 发过去,走 Google Drive,或者直接插 USB 线。App 用的是系统的文档选择器,它能打开的任何位置都可以。
第四步:导入文件,检查预览
在 NFC.cool Tools 里打开 NFC 工具页面,在批处理模式下面找到 CSV 批量写入。Android 上它同样在 NFC 工具列表里。点导入 CSV,选中你的文件。
App 会自己复制一份文件。写标签的过程中,被移除的是这份副本里的行。电脑上的原始表格原封不动,所以完整的清单始终在你手里。
选好文件后,App 会显示它识别出来的信息:分隔符、列数、分组模式,以及你总共需要多少枚标签。我每次必看的一个数字是每个 NFC 标签的字节数,也就是这一批里最大那条消息的大小。拿它和你手里的标签对一对:NTAG213 能装 144 字节,NTAG215 是 504 字节,NTAG216 是 888 字节。一条短链接大约 50 字节,所以写链接的话,最便宜的标签就够用了。Wi-Fi 记录或者长一些的联系人名片,就得用 215 或 216。如果你不确定自己手里的是哪种芯片,可以看看我那篇 NFC 标签类型指南。
打开批次预览,能看到每一枚标签和它将要写入的记录。那里显示的是什么,写进去的就是什么。
第五步:把这一叠标签写完
点开始写入,把第一枚标签贴到 iPhone 的顶端。手机一振动,这枚就写好了,换下一枚。刚写完的那一行会从列表里消失,计数器会告诉你还剩多少枚。
有几种情况一定会遇到,都是正常的:
扫描面板 60 秒后会消失。这是 iOS 的限制,不是 App 崩溃了。几秒钟后它会自己回来,你接着刚才的位置继续就行。
某枚标签写入失败。可能它被锁定了,也可能你拿开得太早。这一行会留在文件里,App 不会跳过去,你把这枚标签重新贴一次,或者换一枚就好。
你中途得停下来。关掉 App,去忙别的,明天再回来。文件记得还剩哪些没写。在 Android 上,App 会显示这个未完成的批次,并提示你继续。
一旦上了手,一百枚标签用不了多久。
写了几百枚之后,我攒下的几条经验
先写两枚试试。然后用 App 把它们读回来,确认标签的表现和预期一致,再去写剩下的。
不必买容量最大的芯片。写链接的话 NTAG213 就够了,批量采购时明显便宜不少。NTAG216 留给联系人名片和 Wi-Fi。
送出去的标签,要么锁定,要么加密码。CSV 批量写入旁边就有批量锁定和批量密码保护两个模式。锁定会让标签永久变成只读;密码则允许你以后自己修改,别人却改不了。凡是要离开你手的标签,写完之后再用其中一种模式把整叠过一遍,这样就没人能覆盖里面的内容了。
CSV 批量写入功能已经在 iPhone 上的 NFC.cool Tools 和 Android 上了。要是在哪场技术大会或者线下聚会上碰到我,记得找我要一枚标签。