全部指南
数据

为什么导出的 CSV 多了一个撇号

多出的撇号可能是刻意添加的。看看公式防护会怎样改变导出的数据。

导出 CSV 时开头的撇号可能是故意添加的。当启用 保护 CSV 免受电子表格公式影响 选项时,CozyToolkit 会在某些类似公式的值前加上撇号。该选项默认开启。

例如,文本 =1+1 会变成 '=1+1。这样有助于防止电子表格将该值误判为公式。它也改变了底层数据,因此后续的 CSV 转 JSON 操作会保留这个撇号。

导出四个看似普通的值

下载 示例 JSON,上传到 CSV、JSON 和 YAML 转换器。设置 从 为 JSON,到 为 CSV。打开 选项,保持 保护 CSV 免受电子表格公式影响 选项开启。

示例包含四个带标签的值。在 代码 输出中,导出的字段为:

源字符串 导出 CSV 字段 解析值
=1+1 "'=1+1" '=1+1
@cozytoolkit "'@cozytoolkit" '@cozytoolkit
-12 "'-12" '-12
Ready to share Ready to share Ready to share

使用 下载 保存 CSV,或查看 已检查的导出文件。示例使用了无害的算术表达式、一个用户名和一个偏移量,方便观察转换效果。

表格 标签页预览输入记录。用 代码 或下载的 CSV 检查导出时添加的撇号;输入表格不显示这些转义字符串。

CSV 引号的作用不同

外层双引号是 CSV 语法的一部分,CSV 解析器读取字段时会去掉它们。引号内的撇号是字段值的一部分,会被保留。

选择 将结果用作输入,将导出的 CSV 转回 JSON。关闭数字检测后,第一个值变成了 "'=1+1",而不是 "=1+1"。 转回的 JSON 显示了所有四个结果。这是有意的数据变化,不是引号错误。

如果下游系统需要完全相同的原始字符串,请保留源 JSON。不要盲目删除所有开头的撇号:有些可能是原始数据的一部分。

了解此选项检查的内容

转换器使用了 Papa Parse 的 公式转义选项。它会给以 =、+、-、@、制表符或回车符开头的值加前缀。包括无害的值,如用户名和负数字符串;该选项不会判断每个值是否恶意。

这只是有限的导出预防措施,不能保证任何电子表格都能安全打开任何 CSV。当前检查未覆盖所有可能的前缀,比如换行符或全角符号。电子表格导入设置各异,保存后重新打开 CSV 可能改变转义方式。OWASP 解释了这些 CSV 注入的限制。

对于不可信数据,应通过电子表格的文本导入控件导入,明确将相关列设为文本,并检查结果。确认接收文件的应用和版本的行为。

将精确数据导出与电子表格导出分开保存

当可信的机器对机器流程需要完全相同的原始字符串时,关闭保护选项可以避免添加撇号。请将该版本与供人用电子表格打开的文件分开保存。不需要表格文件时,JSON 通常是更清晰的交接格式。

我们的 结果记录 于 2026 年 11 月 2 日使用实际转换器,比较了保护开启和关闭的情况。它确认了导出文本和解析器读取的值。并未声称测试过 Excel、LibreOffice 或其他电子表格,也不保证公式转义能让不可信文件绝对安全。