联系人 CSV (.csv)

RFC 标准

逗号分隔值 (CSV) 是一种用于表格数据的广泛使用的纯文本格式,其中每一行代表一条数据记录,字段由分隔符字符隔开。

将 XLSX 转换为 CSV

免费的浏览器端 XLSX 转 CSV 转换器。在您的设备上即时转换文件。

在线压缩 CSV

隐私保护 - 文件不会离开您的设备

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 CSV 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 CSV 文件:

十六进制签名 (偏移量 0):

没有固定签名

ASCII 表示形式: 文本字节,编码可能不同

标准化: RFC 4180 / IETF

技术规格

容器架构表示表格数据行和列的分隔型纯文本文件
压缩方式Gzip / Deflate 可对重复的表格记录实现 85%-95% 的压缩率
字节序UTF-8 文本流(Excel 使用可选的 UTF-8 BOM EF BB BF)
色彩空间不适用
通道与结构由 CRLF 分隔的行记录,列之间由逗号分隔
最大尺寸无限制;可流式处理数吉字节的数据,无需将整个文件加载到内存中
透明度不适用
流式传输与渐进式加载所有数据管道均支持原生的逐行流式处理

技术对比矩阵:CSV 对比同类产品

技术属性CSV (当前)Excel (XLSX)ParquetJSON
文件类型纯文本平面表格压缩的 XML 电子表格二进制列式存储层级文本
多工作表否(仅限单个平面表格)是(多个工作簿和工作表)基于分区的存储嵌套数组和对象
数据类型无类型的原始文本带类型的单元格、公式、格式严格的二进制列类型原始类型(字符串、数字、布尔值)
大数据分析慢(需要线性读取每一行)不适合大数据极快(列修剪和谓词下推)中等

常见损坏模式与十六进制恢复指南

列向右偏移或行数不匹配。

根本原因: 包含未转义逗号且没有用引号包裹的文本字段。

恢复方法: RFC 4180 要求包含逗号的字段用双引号包裹:"Smith, John"。

在 Excel 中带音符的字符呈现为奇怪的符号(例如显示为 é 而不是 é 的乱码)。

根本原因: Excel 在打开 UTF-8 CSV 时错误地假设为旧版 Windows ANSI/CP1252 字符编码。

恢复方法: 在文件开头前置 3 字节的 UTF-8 字节顺序标记 (0xEF 0xBB 0xBF)。

安全分析与解析器攻击向量

CSV 文件可直接在 Excel 和 Google Sheets 等电子表格软件中打开,从而使用户面临公式注入(CSV 注入)攻击。

已知攻击向量

  • 公式注入:以 '='、'+'、'-' 或 '@' 开头的单元格可执行电子表格宏或 DDE 命令(例如 '=cmd|' /C calc'!A0')。
  • 通过点击 HYPERLINK() 公式在用户点击时将敏感单元格数据发送到远程攻击者服务器的数据渗漏。

防御性最佳实践: 将用户数据导出为 CSV 时,在任何以 '='、'+'、'-' 或 '@' 开头的单元格前加上单引号 (') 或制表符,以强制在 Excel 中进行纯文本渲染。

历史渊源与里程碑

2015W3C 的 Web 表格数据和元数据模型(Model for Tabular Data and Metadata on the Web)使用 JSON-LD 元数据描述符将 Web 上的 CSV (CSVW) 标准化。
2005IETF 发布 RFC 4180,确立了 CSV 文件的正式规范。
1972IBM Fortran (H Extended) 编译器实现了逗号分隔的输入/输出。

核心优势与特点

  • 极致简洁:可在任何文本编辑器中阅读,并可导入每个数据库和电子表格中。
  • 极快的逐行流式传输,无需构建完整的内存 DOM。
  • 极小的开销:没有冗长的标签语法或架构定义。

技术局限与劣势

  • 没有标准的数据类型:数字、日期、布尔值和文本全部作为原始字符串存储。
  • 不支持多工作表、单元格格式、公式或元数据。
  • 分隔符冲突(文本中的逗号、欧洲语言区域的小数逗号)会导致频繁的解析错误。

趣味技术冷知识

  • 在许多使用逗号作为小数点的欧洲国家,通常使用分号 (;) 代替逗号作为 CSV 分隔符。
  • 微软 Excel 历史上需要 UTF-8 BOM (0xEF 0xBB 0xBF) 来正确显示非 ASCII 带音符的字符。
  • 2020 年,英国国家医疗服务体系 (NHS) 因将数据导入到行数上限为 65,536 的过时 Excel 电子表格格式中,导致近 16,000 条 COVID-19 接触者追踪记录丢失,轰动一时。

常见技术问题

什么是 RFC 4180?

RFC 4180 是 IETF 针对 CSV 的官方标准。它规定包含逗号、换行符或双引号的字段必须用双引号括起来,并且内部引号必须通过将其加倍("")来转义。

为什么 CSV 文件在 Excel 中打开时字符会损坏?

旧版本的 Microsoft Excel 在直接打开 CSV 文件时,默认使用本地 Windows 代码页(如 Windows-1252)而不是 UTF-8。在文件开头添加 UTF-8 BOM(字节顺序标记)可强制 Excel 正确解码 UTF-8。

什么是 CSV 注入(公式注入)?

当不受信任的用户输入包含以“=”、“+”、“-”或“@”开头的公式触发字符,并被导出到电子表格文件时,就会发生 CSV 注入。在 Excel 等软件中打开文件后,电子表格会自动执行公式或动态数据交换(DDE)命令,可能运行系统命令或泄露数据。