Tablora · 资料库
读取CSV字段内部的引号
在CSV中,带引号字段里的两个双引号代表一个引号。了解结构检查工具如何读取She said "hello",以及反斜杠为何行不通。
CSV如何在值中写引号
含有引号的CSV字段本身必须用引号括起来,其中的每个引号都要写两遍。所以单元格文本She said "hello"在文件中存为"She said ""hello"""。外层引号是语法,里面每对重复的引号代表一个字面意义上的引号。
有些程序改为在引号前加反斜杠,这是借自编程语言的约定。结构检查工具遵循的是CSV规则而不是这种约定,所以用反斜杠转义的引号不被视为转义。
检查Poster这一行
本页示例包括表头item,note和一条note为"She said ""hello"""的记录,“字段分隔符”为逗号。结构检查工具报告2行2列。第2行第2列为She said "hello",hello前后各恰好一个引号。
如果在预览中看到hello两边各有两个引号,说明该字段在原始资料中没有加引号,这段文本很可能根本不是有效的CSV。
无法解析的输入
- 未加引号的字段中间出现引号,例如外面没有引号的She said "hi",会被拒绝。工具不会猜测字段在哪里结束,而是显示“请检查输入的数值后重试。”
- 引号前的反斜杠不能起到转义作用,所以用反斜杠转义导出的文本也会因同样的原因被拒绝。
- 闭合引号后面还有字符,例如"hello"x,也会被拒绝。
- 选中“检测分隔符”时,结构检查工具会依次尝试逗号、分号、制表符和竖线,只有在都无法解析时才报告错误。
- 带引号的字段必须紧跟在分隔符之后或位于行首,所以开引号前有空格同样会被拒绝。
修复并导出带引号的文本
- 在原始导出文件中找到这个字段,并检查生成它的软件是否有标准CSV选项。
- 如果手动修复,就把整个字段用引号括起来,并把其中每个引号都写两遍。
- 再次点击“计算”,确认单元格显示的是单个引号。
- 预览正确后再使用“下载 (CSV)”;下载会按同样的双写规则写回引号,其他程序也能读取。
应用导出中的引号
当单元格含有引号、逗号或换行时,Tablora应用的CSV导出遵循同样的规则:用引号括起单元格,并把内部引号写两遍。在XLSX导出中,引号只是单元格文本的一部分,你看不到任何转义。
输入值
- 表格文本
- item,note Poster,"She said ""hello"""
- 字段分隔符
- ,
结果
- 行数
- 2
- 列数
- 2
| item | note |
|---|---|
| Poster | She said "hello" |
- 宽度不同的行
- 0