CSV 列选择清理

选择列、调整顺序、清洗取值,导出仍是原来的格式。

使用方法

  1. 把表格粘贴进输入框,下方立刻出现一排列标签,每个标签带上这一列的空值个数与不重复取值个数——删哪一列有据可查,不用靠列名猜。
  2. 点一下标签就是删掉这一列,再点一下会回到原来的位置;箭头把保留的列往前或往后挪一位,这个顺序就是输出的列序。需要时勾上「Trim 首尾空白」「大小写」「删除全空列」「按保留列去重」——结果即时重算,页面上没有任何要点的提交按钮。
  3. 复制或下载结果。输出沿用你输入的分隔符与换行符,贴进来是 Tab 分隔、出去还是 Tab 分隔;屏上看到的、复制的、下载的是同一份文本。

示例

输入(CSV)

订单号,客户,备注,折扣,城市
0001, 张 伟 ,要求 3 月 11 日送达,,上海 
0002,"李娜",已发货,待签收,, 杭州 
0003, 王芳 ,"特价,不含运费",,北京
0001,张 伟,,  ,上海

输出(勾选 Trim + 删除全空列 + 按保留列去重)

订单号,客户,备注,城市
0001,张 伟,要求 3 月 11 日送达,上海
0002,李娜,已发货,待签收,杭州
0003,王芳,特价,不含运费,北京
0001,张 伟,,上海

四点可以对着核对:折扣列在默认口径下的画像是「空 3 · 唯一 1」,那唯一的值是两个空格——没勾 Trim 时它算有值,所以列不会被删;勾上 Trim 后它变空,画像成「空 4 · 唯一 0」,该列才被删掉,注记里点名「折扣」。姓名的全角空格只去掉首尾,中间那个保留,所以输出仍是「张 伟」。城市「上海 」去掉尾随空格后与第 1 行相同,但一行有备注、一行空着,两行并不重复,所以行数仍是 4 → 4、只有列数 5 → 4。全角逗号「,」不是分隔符,所以「特价,不含运费」输出时不带引号,源文件里包住李娜的那对引号同样被去掉。

口径、局限与已知问题

  • 不上传任何内容:解析、清洗、重绘都只在本页进行。不提供文件上传 / 拖放 / URL 抓取,请粘贴文本;要打开本地 .csv(尤其 GB18030、Big5、Windows-1256 编码)请用 CSV 查看器,再从那里复制文本。
  • 默认什么都不改:Trim、大小写、删除全空列、去重全部默认关闭,所有列默认保留。没勾 Trim 时「 」仍算有值,因此「ABC」与「ABC 」在去重时被视为不同的单元格。
  • Trim 只删首尾空白(含全角空格、不换行空格、零宽字符),不删值中间的空格;LRM/RLM 这类方向标记会被保留,删掉会破坏阿拉伯文的显示。表头不会被 Trim 或折叠大小写——列名是你识别这一列的依据。
  • 永不把取值当类型或日期看:89.90 还是 89.90,00721 保住前导零,03/04/2026 不被解析。歧义格式一律不猜,也不做全角↔半角与标点规范化(那属于文本清理工具)。
  • 去重按保留列逐字精确比较(不折叠大小写、不用语言排序规则,因此结果与界面语言无关),只保留首次出现,并列出被删除的源行号;没有「保留最后一条」这一说,也不会给数据行排序。
  • 只有当某一列在所有数据行都为空时才会被「删除全空列」去掉,并且会在注记里点名列名;跨所有保留列都为空的数据行会被删除,同样给出行号。字段偏少的行会被补上空单元格,以保证列对齐。
  • 列标签上的空值/唯一值统计只在数据行 ≤ 5,000 时给出;超过就明说不统计,不会抽一部分数据算个看起来精确的数字糊弄你。
  • 输入上限 1,000,000 个字符;超过 200,000 会提醒你结果延后重算。畸形的 CSV 不会被拒绝:引号没闭合就取到文本末尾并点名行号,空行跳过并计数,字段数不符的行会被列出行号。
  • 输出不含 BOM、结尾不加空行,且与复制到的内容逐字一致。如果 Excel 双击打开含非拉丁字符的 CSV 出现乱码,请改用「数据 → 从文本/CSV」导入并选择 UTF-8。
  • 输出按最小引号规则重新写一遍:只有包含分隔符、引号或换行的字段才带引号,所以「每个字段都加引号」的源文件出来是不带引号的,写成一对引号的空字段出来是真正的空。选项全关时字段值本身不变,分隔符与换行符沿用你输入的。
  • 不做的事:改单元格、重命名表头、拆列 / 合并列、查找替换 / 正则、给数据行排序、类型与日期转换——请分别使用 CSV 查看器、CSV ⇄ JSON 与文本清理。

同一个表格的相邻步骤:打开它、整理它、转换它。