跳到工具
ViewCSV
无需上传文件

CSV 排序

orders.csv· 示例数据15 行 · 8 列
空值或不符合格式的值
值相同的行保持原有顺序。数字按精确值比较,因此 9007199254740993 会排在 9007199254740992 之后。
结果
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041磊 黄北京Coffee beans 1kg7139.122026-01-27pending
2001042杰 徐北京Coffee beans 1kg2132.102026-02-14shipped
3001043伟 孙上海Notebook A57129.752026-03-22pending
4001043伟 孙上海Notebook A57129.752026-03-22pending
5001044敏 杨上海Chair, ergonomic1122.252026-04-25paid
6001045静 王成都Coffee beans 1kg9·2026-05-15refunded
7001046伟 黄北京Desk lamp8104.232026-06-06refunded
8001047 伟 吴 成都USB-C cable5225.652026-07-08refunded
9001048杰 李南京Coffee beans 1kg774.982026-08-11refunded
10001049磊 王南京Monitor 27"9223.842026-09-22pending
11001050艳 吴南京Desk lamp391.942026-01-02shipped
12001051娜 刘深圳Monitor 27"2216.982026-02-18pending
13001052磊 刘上海Chair, ergonomic8136.302026-03-22pending
14001053静 张北京Desk lamp4238.822026-04-25pending
15001054艳 陈南京USB-C cable495.922026-05-21paid

输入:15 行。结果:15 行 · 8 列。

打开或粘贴 CSV 文件,选择 排序依据 列、比较方式 和 顺序,排序结果会立即显示。可以添加 次要依据 列来区分值相同的行,最多共 20 列。值相同的行保持原有顺序,空值或无法识别的值排在最后(或最前),单元格文本不会被改动。排序在你的浏览器中完成,文件不会上传。

如何对 CSV 文件排序

  1. 打开 .csv、.tsv 或 .txt 文件,拖到工具上,或粘贴数据。分隔符以及 UTF-8、UTF-16 的字节顺序标记(BOM)会自动识别;如需其他分隔符或旧编码(如 GBK 文件选 GB18030),请在 导入设置 中选择。
  2. 第一个排序列默认是文件的第一列,按 文本(file2 排在 file10 前) 升序排列。可按需修改 排序依据、比较方式 和 顺序。
  3. 点击 再添加一列 增加一个 次要依据;它只决定在上面各列都相同的行之间的顺序。用箭头按钮调整优先级。
  4. 选择 空值或不符合格式的值 的位置:排在最后 或 排在最前。
  5. 点击 下载 CSV、复制 或 在编辑器中打开。

如果只想对部分行排序,请先用 筛选 CSV 行 把这些行留下来。要核对两份已排序的导出文件,请使用 对比 CSV 文件。

选择比较方式

文本(file2 排在 file10 前)按语言习惯的自然顺序:连续的数字按数值比较,所以 file2 排在 file10 前面;带重音的字母排在其基本字母旁边(ä 靠近 a)。排序规则由页面语言决定。
文本(按字符编码顺序)严格按字符编码排序,适合编码和编号,结果可预测;但 file10 会排在 file2 前面,所有数字都排在字母前面,ä 排在 z 后面。
数字适用于 -3、0.25、007 或 1e3 这样的普通十进制数字,并按精确值比较,因此 9007199254740993 排在 9007199254740992 之后。千分位分隔符、货币符号和单位都不算数字。把 小数点 设为 逗号 1,5 时,2,25 按二又四分之一读取。
日期按所选的 日期格式 识别日期:ISO 2024-03-31(可带时间、小数秒以及 Z 或 +02:00 时区偏移,偏移会换算为 UTC)、日在前 31/03/2024、月在前 03/31/2024 或 2024/03/31。

除非开启 区分大小写,否则大小写视为相同。在自然顺序下,只有大小写不同的值保持原有顺序;开启该选项后,英文中小写排在大写前面。自然顺序始终区分重音(resume 和 résumé 不同)。

空值、无效值和并列

  • 排序是稳定的:所有排序列都相同的行,无论升序还是降序,都保持它们在文件中的原有顺序。
  • 空单元格或只含空格的单元格视为空值。无论升序还是降序,空值都按 空值或不符合格式的值 的设置排列。
  • 选择 数字 或 日期 时,无法按所选格式读取的值(n/a、1,250,或在 ISO 格式下的 31/03/2024)会和空值放在一起,提示中会说明有多少个。
  • 只改变行的顺序。前导零、引号、空格和值内换行都按原样写回;表头行始终在第一行。
  • 空白表头会写成 Column 3,重复表头写成 name (2)。比表头短的行会用空值补齐。
  • 下载的文件保留原有的分隔符、换行符和末尾换行;编码为 UTF-8(带或不带 BOM)、UTF-16 LE 或 Windows-1252 时也保持原编码,其他编码(包括 GB18030)会保存为 UTF-8。

常见问题排查

  • 10 排在了 9 前面。 该列是按 文本(按字符编码顺序) 比较的。请改选 数字;如果是 v10 这类混合标签,请选 文本(file2 排在 file10 前)。
  • 有些数字和空值排在了一起。 它们不是普通数字:检查是否有 1,250、€40、12 kg 这样的写法,或文件用逗号作小数点、却选了 点号 1.5。结果上方的提示会给出数量。
  • 日期顺序不对。 日在前的日期按文本比较,或被 月在前 03/31/2024 读取时,都会被误读。请选择文件实际使用的格式。
  • 带重音的名字跑到了最后。 请改用 文本(file2 排在 file10 前),不要用字符编码顺序。

限制与隐私

最多 20 个排序列。文件最大 25 MB、10 万行、250 列和 200 万个单元格;更大的文件请先用 拆分 CSV 拆开,或先筛选掉不需要的行。

排序在你的浏览器中进行,CSV 文件不会上传到服务器。

示例

工单先按 team 排序(文本(file2 排在 file10 前),升序),再按 priority 排序(数字,降序)。因为这一列按数字比较,所以 10 排在 2 前面;空白优先级排在所属团队的最后;Support 和 support 算作同一个团队;T-10 和 T-11 在两个排序列上都相同,因此保持原有顺序。

CSV
ticket,team,priority,opened
T-9,Billing,2,2024-05-03
T-10,Support,1,2024-05-01
T-2,Billing,,2024-05-02
T-11,support,1,2024-04-30
T-1,Billing,10,2024-05-04
排序后的 CSV
ticket,team,priority,opened
T-1,Billing,10,2024-05-04
T-9,Billing,2,2024-05-03
T-2,Billing,,2024-05-02
T-10,Support,1,2024-05-01
T-11,support,1,2024-04-30

常见问题

怎样先按一列排序,再按另一列排序?

先在 排序依据 中选择第一列,然后点击 再添加一列,在 次要依据 中选择第二列。第二列只对第一列相同的行起作用。

为什么排序不会改动我的数字或日期?

值只在比较时被解析。输出的文本与输入完全相同,所以 007 和 2024-03-05T09:00+02:00 都会原样写出。

能按自定义顺序排序吗,比如“低、中、高”?

不能直接实现;工具只按文本、数字或日期排序。可以在 CSV 编辑器 中新增一列,填入 1、2、3 这样的序号,再按 数字 对这一列排序。

标准与参考资料