在你的设备上运行 · 你的文件从不离开你的设备。
拖入导出的.csv或粘贴文本,得到一个JSON列表——一行一个对象,表头就是键名。解析遵循RFC 4180:带引号的字段、成对的双引号、单元格里的逗号和换行都原样保留。
列分隔符在逗号、分号、制表符和竖线中自动识别——用分号的导出文件不用任何设置就能转——也可以手动指定。默认“12”变成数字12,“true”变成布尔值,空单元格变成null——但只在什么都不会改变时才这样:1.50、1e3、007和很长的ID保持文本,因为变成数字后会写回成别的样子。关掉这个开关,每个值都保持原来的文本。
重复或空白的表头会自动起唯一的名字(column_3),字节顺序标记(BOM)会被去掉;存为UTF-16或旧代码页的文件会按实际编码读取并注明;单元格比表头多的行会报告所在行号;解析出错时会告诉你在第几行第几列,而不是一句含糊的提示。下载前可以预览前200行。
不适用于: 还原嵌套结构——CSV是扁平的,每一行变成一个扁平对象;带点的列名不会重新嵌套。
开关打开时,一个单元格只有在变成数字后还能写回同样的文本,才会变成数字:12、-4和3.5变成数字。1.50、1e3和-0保持文本,因为变成数字后会写回成1.5、1000和0。007、+5、" 12"、3,5、1,250、带百分号或货币符号的值,以及长到数字无法精确保存的ID,也都保持文本。
true和false不分大小写都能识别,所以TRUE变成true。空单元格变成null,但单词NULL保持文本,因为它也可能是一个值或一个名字。2024-01-05这样的日期始终是文本。
单元格按位置和表头对应。单元格少的行,缺的那几列得到null(关掉类型识别时是空字符串)。单元格比表头多的行,多出来的没有地方放,会被略去;预览上方的提示会说明有多少行出现这种情况,以及第一处从第几行开始。这通常说明某个值——比如Smith, John——含有分隔符却没加引号。
空行会跳过。表头名两端的空格会去掉;值不会,所以" Cairo"保留它的空格。
只有作为字段的第一个字符时,引号才开始一个带引号的字段;在中间,比如5" screen,它就是文本的一部分。一个字段用引号开头却始终没有闭合,会把文件剩下的全部内容吸进一个单元格,所以转换会停下来,并给出这个引号开头处的行号和列号。
识别时看前64 KB、最多50行,选出在最多行里给出相同列数的分隔符;引号里的分隔符不计。在用小数逗号的分号文件里,比如A;1,5,会找到分号,1,5保持文本。
文件按它的字节实际是什么来读:字节顺序标记(BOM)、UTF-16(Excel称之为“Unicode文本”)或UTF-8。字节不是有效的UTF-8时,会改用能让它们读成文字的旧代码页:西欧和中欧、西里尔、希腊、土耳其、希伯来、阿拉伯(含波斯文和乌尔都文)以及泰文的Windows代码页,或者中文、日文和韩文的GB18030、Big5、Shift_JIS和EUC-KR。这时文件那一行会写明,比如“按 windows-1256 读取,不是 UTF-8”;很短的文件可供判断的字母少,请看一下它的预览。
本页的其他语言版本: English · العربية · Deutsch · Français · Español · Русский · Português · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা