返回应用

如何在 XLSX、CSV、TSV 之间转换

最后更新:2026-05-22 · 作者:xlstools 团队

格式转换听起来很简单,直到你撞上现实世界的问题:特殊字符变乱码、多 sheet 工作簿丢数据、公式消失、日期自我重格式化。本指南解释每种转换实际发生什么,以及如何做到无损。


4 种格式速览

格式 多 sheet 公式 格式 编码 典型用途
XLSX UTF-8(二进制) Excel 默认格式;功能最全
XLS 旧编码(二进制) 旧 Excel;文件更小
CSV UTF-8 带 BOM 通用交换;只能一个 sheet
TSV UTF-8 带 BOM 数据库导入;制表符分隔

无损转换是 XLSX ↔ XLS(双向)和 CSV ↔ TSV(双向,仅分隔符不同)。其他转换都至少损失一种特性。


分步教程

第 1 步 — 上传文件

4 种格式中任一都可作为源。工具根据扩展名和内容自动识别。

第 2 步 — 选择目标格式

选项以按钮形式呈现:

  • XLSX(Excel 工作簿) — 功能最全、多 sheet
  • CSV(逗号分隔) — 通用、单 sheet
  • TSV(制表符分隔) — 适合数据库导入

从多 sheet 文件转 CSV/TSV 时还要选导出哪个 sheet——其余被跳过。

第 3 步 — 下载

转换后的文件直接下载。文件名保留源文件名,仅改扩展名。


每种转换会保留什么

XLSX → CSV

  • ✅ 值保留
  • ✅ 特殊字符(CJK、重音)通过 UTF-8 BOM 保留
  • ✅ 日期按配置格式序列化
  • ❌ 多 sheet 丢失(选一个)
  • ❌ 公式被评估为最后计算值
  • ❌ 格式丢失(颜色、字体、列宽)

XLSX → TSV

同 XLSX → CSV,但用制表符代替逗号。最适合数据库导入(PostgreSQL COPY、MySQL LOAD DATA、BigQuery),那里值内含逗号会引起解析问题。

CSV → XLSX

  • ✅ 值保留
  • ✅ 自动类型化(数字变数字、日期变日期)——通常符合预期
  • ⚠️ 单 sheet——无多 sheet 结构可恢复

CSV ↔ TSV

  • ✅ 无损——只改分隔符
  • ✅ 编码保留(仍是 UTF-8 带 BOM)

XLS → XLSX

  • ✅ 无损——所有特性保留
  • ✅ 推荐用于现代化旧文件

UTF-8 BOM 是什么,为什么重要

CSV 没有内建方式声明自己的编码。Windows 上的 Excel 通过 UTF-8 BOM(文件开头的 3 字节标记)来识别 CSV 是 UTF-8——没有它,Excel 会根据系统区域猜测,通常会把中文、日文、韩文或重音字符弄乱。

xlstools 默认写 BOM。若下游工具(部分 Linux 脚本、特定 Python 解析器)不期望 BOM,可用以下命令去除:

sed -i '1s/^\xEF\xBB\xBF//' file.csv

常见用例

交付 CSV 给会计系统

大多数 ERP(NetSuite、Sage、QuickBooks)收 CSV 不收 XLSX。启用 BOM 转换,确保重音供应商名和 CJK 客户名正确导入。

为数据库导入准备 TSV

PostgreSQL COPY 和 MySQL LOAD DATA INFILE 都偏好 TSV——不必担心值中的逗号。一键把 XLSX 转 TSV,无需折腾引号规则。

现代化遗留 XLS 文件

部分 HR 系统仍输出 .xls(Excel 97–2003)。转为 .xlsx 后可在现代 Excel 中打开无兼容警告——平均文件体积减半。


常见问题与解决办法

问题 原因 解决
Excel 打开 CSV 后 CJK 字符变 ??? BOM 被去除,或工具另存为 ANSI 重新转换;勿在 Notepad 编辑 CSV 后再用 Excel 打开
ID 前导零消失(00123123 CSV → XLSX 把列自动类型化为数字 源中预先把列格式化为文本,或用 Excel 的"获取数据"对话框显式指定文本类型
日期格式意外改变 Excel 地域设置与源解释不同 改用 TSV——TSV 用户工具很少自动重格式化日期
XLSX → XLSX 往返后公式显示 #REF! 源含跨工作簿引用无法解析 在 Excel 中打开源文件,"选择性粘贴 → 值"后再转换

隐私与安全

转换 100% 在浏览器内(基于 SheetJS)。源文件与输出文件都不离开设备——适合敏感的薪资、PII 或财务数据。


相关工具