跳到主要内容

列表转逗号:每行一项秒变逗号分隔串,顺手加引号去重

把每行一项的列表拼成逗号分隔串,可加单双引号做 SQL IN、压成 CSV 一行或标签串,也能换行转逗号、逗号拆回多行,顺手去空行去重,全程浏览器本地处理不上传。

发布于 作者 李雷
#文本工具 #列表转逗号 #SQL IN #CSV #去重

列表转逗号:每行一项秒变逗号分隔串,顺手加引号去重

从表格里复制一列出来,粘到代码或查询里,十有八九要把那一竖列拼成一行逗号分隔的串。手敲分隔符这件事我做过太多遍:复制 80 行订单号,挨个在后面补逗号,补到第三十行眼睛就开始花,末尾还总会多出来一个逗号要回头删。其实这一步完全不该用手做。列表转逗号分隔 就专门干这件事,粘进去,结果一行实时出来,带项数统计,复制走人。

每行一项是怎么拼成一行的

工具的核心动作很直白:每一行算一项,选好分隔符,把它们接起来。分隔符不是只有逗号,可选项里有逗号、逗号加空格、分号、竖线、空格,还能自己填一个字符。给代码用我一般选「逗号加空格」,读起来舒服;塞进 CSV 单元格就用纯逗号。

举个真实例子。输入这三行:

苹果
香蕉
樱桃

选「逗号加空格」,输出就是:

苹果, 香蕉, 樱桃

三行变一行,中间的分隔符不用你操心,末尾也不会多一个孤零零的逗号。

加引号:为 SQL IN、CSV 一行、标签串各加一套

很多时候光接起来还不够,每一项外面要包东西。这里有两层包裹:

  • 给每一项套单引号或双引号。把「引号」设成单引号,再配「逗号加空格」,上面那三项就变成 '苹果', '香蕉', '樱桃',正好是 SQL 里字符串列的写法。
  • 给整段输出加前缀和后缀。把前缀填成 (、后缀填成 ),加上引号就能直接拿到 ('苹果', '香蕉', '樱桃') 这样的完整子句。前后缀填成方括号,就是标签数组 [react, typescript, testing]

这里有个我自己踩过的坑提醒一句:数字 ID 列别加引号。IN ('1', '2') 是拿数字当字符串比,更慢,严格的数据库里还可能漏行或报类型错误。整数主键把引号设成「无」,得到 IN (1, 2, 3) 才对。只有字符串列才需要引号。

反向:逗号串拆回多行

方向是可以掉头的。把开关切到「拆分」,粘一段 红, 绿, 蓝 进去,它按你选的分隔符拆开,每项一行。别人发来一个 CSV 样式的单元格,五个值用分号挤在一起,你想竖着一项项核对,切到拆分模式、分隔符设成分号,立刻每行一个值,读、排、贴回表格各行都顺。这个方向下「每项去空白」一样生效,拆出来每段都干净。

顺手清一遍:去空行、去重、排序

转换的同时还能把脏东西清掉,这三个开关我基本默认全开:

  • 每项去空白。从表格复制过来,行尾常带制表符和空格,打开它一并清掉。
  • 跳过空行。粘进来的列中间有一行空白,不打开就会变成一个空项,得到 苹果, , 香蕉 中间空一段,这个空值会让 SQL IN 出错,在 CSV 里也别扭。
  • 去重加排序。重复行只留一个,比较时按去空白之后的结果算;排序有字典序和数值序(1, 2, 10 而不是 1, 10, 2),也可以「不排」保留原顺序。去重和排序都在拼接之前跑完,最后那串已经是干净的。

如果你要清理的列本身又乱又长,先用 文本去重工具 把重复行筛掉,再回来转逗号,两步连起来很顺手。

全程浏览器本地,不上传

转换的每一步,接行、加引号、去重、排序、反向拆分,都是浏览器标签页里运行的纯 JavaScript。你的列表不离开页面,也不记录任何内容。唯一要留意的是分享链接会把输入和选项写进查询字符串,所以列表里有内部 ID、邮箱或别的敏感内容时,用复制按钮粘文本,别直接分享网址。

我现在的习惯是:从表格复制一列,粘进来,引号和分隔符按场景一调,清理开关全开,看一眼项数对不对,复制。原来要在编辑器里改两分钟、删错一个逗号还要回头找的事,现在十秒钟搞定。


Made by Toolora · Updated 2026-06-13