跳到内容

📊 Excel 粘贴格式化

将 CSV / TSV / 自由文本整理为可直接粘贴到 Excel 的 TSV,支持 RFC 4180 引用、LF/CRLF 切换和公式注入防护。

完全免费 无需注册 浏览器内完成 5 种语言 深色模式

🔒 关于隐私

💡 提示: 复制后在 Excel 单元格中按 Ctrl+V (Mac 为 Cmd+V) 粘贴。

📖 常见的坑

把 CSV、TSV 或自由文本整理成可以直接粘进 Excel 的 TSV,支持 RFC 4180 的引号处理、LF 与 CRLF 的切换,以及针对公式注入的转义。处理全部在浏览器内完成。Excel 破坏的是「读入的那一刻」,而不是数据本身——粘贴的瞬间自动转换就会启动,因此要考虑的不只是把数据整理好交出去,还包括接收方的设置

情形 会发生什么 怎么处理
开头的 0 没了、变成日期、或变成科学计数法 Excel 会试图把单元格里的每一个字符串都往「数字或日期」上解释。结果就是:01231231-2 变成 1 月 2 日,1/2 也变日期,1E5 变 100000,超过 16 位的数字后面全被换成 0。邮编、电话号码、产品编号、银行账号、基因名(MARCH1 被识别为日期的问题,真的迫使遗传学界修改了命名规范)都是典型受害者。这一转换在粘贴的瞬间就已确定,无法撤销——一旦保存,信息就永久丢失了。 粘贴之前,请先把目标列的格式设为「文本」。这是唯一可靠的办法:选中列,在单元格格式对话框中选「文本」,然后再粘贴。顺序反了就无效——把已经变成数字的单元格改成文本,丢掉的 0 也回不来。如果是以文件形式交付,请告诉对方不要双击打开 CSV——从「数据」选项卡按文本文件导入,才能逐列指定类型。交付前自己先走一遍这个流程,说明起来会具体得多。
单元格内的换行导致行错位 通过剪贴板粘贴时,Excel 以制表符分列、以换行分行——规则很简单,它并不看你是不是在引号里面。因此像地址、备注这类单元格内含换行的数据,会在那里被切成两行。而且不只是错一行:其后的所有行都会整体错开一列,整张表就散了。以 CSV 文件读入时 RFC 4180 的引号规则是有效的,但粘贴走的是另一条路径,不适用——不知道这个差别,就根本找不出原因。 准备用于粘贴的数据时,请先把单元格内的换行替换掉——换成空格或 / 是务实的做法。在 Excel 内部要制造单元格内换行需按 Alt+Enter,粘贴无法重现这一点。若换行确实必须保留,请改用 CSV 文件而非剪贴板交付,并让对方从「数据」选项卡导入——这条路径能正确解析引号内的换行。要点是在开始整理之前就决定走哪条路径,中途切换必定会在某处出问题。
以 = 开头的单元格被当作公式执行 这不是显示问题,而是一个漏洞,称为 CSV 注入。攻击者只要在表单的姓名字段里填入 =cmd|'/c calc'!A1 之类的值,当管理员用 Excel 打开包含该值的导出 CSV 时,命令就会在管理员的机器上执行你的服务器什么也没做错,你的 CSV 却成了攻击的载体。危险的首字符不只有 =,还包括 +-@,以及制表符(0x09)和回车(0x0D 请打开本页的「公式转义」——它会在以危险字符开头的值前加一个单引号,让 Excel 按文本处理。但根本的对策在服务端——只要你有把用户输入导出为 CSV 的代码,就必须在那个输出环节实现同样的转义这在结构上与 XSS 是同一类问题:正确的设计是「输出时转义」而非「输入时拦截」,因为输入时拦截会连正当的值也一并拒绝——看起来像公式的化学式、会计里的 -100OWASP 把这种攻击单列为一个条目,这本身就说明它不该被轻视。

通过剪贴板粘贴有一个很大的优点:不会出现字符编码问题——这正是本工具输出 TSV 的原因。若改以文件交付,在日文环境下,Excel 会把没有 BOM 的 UTF-8 CSV 当成 Shift-JIS 来读,于是乱码。惯用的规避办法是存成 UTF-8 with BOM,但这样一来接收方的程序又会发现第一个表头名前面粘着一个看不见的 \ufeff——「怎么也找不到叫 id 的列」就是这么回事;在 Python 中用 encoding="utf-8-sig" 读取即可去掉。还有一点:TSV 无法在值中包含制表符,因为它没有 RFC 4180 那样的引号约定,所以数据中可能含制表符时,请在粘贴前替换为空格。能够保证分隔符绝不出现在值内部,恰恰也是 TSV 比 CSV 更好用的原因。

📖 使用方法

  1. 1
    粘贴 CSV 或 TSV
    在输入框中粘贴源数据。
  2. 2
    设置选项
    Windows Excel 推荐 CRLF + 公式转义。
  3. 3
    点击转换
    输出 TSV (制表符分隔)。
  4. 4
    复制后粘贴到 Excel
    复制后在 Excel 单元格中 Ctrl+V。

❓ 常见问题

什么是公式转义?
若单元格以 = + - @ 开头,Excel 会作为公式执行(存在 CSV 注入风险)。前缀单引号使其作为文本处理。
应使用 LF 还是 CRLF?
Windows Excel 用 CRLF;其他环境用 LF 也可。
单元格内可以包含换行吗?
可以。开启 RFC 4180 引用后,引用字段内的换行会被保留。

🔗 相关工具

🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送