一个老后端维护的纯前端项目:表格转换工具

查看 741|回复 43
作者:Fechin   
距离上一次在 V 站发的贴子,已过去将近三年,后端成了老后端,开发的纯前端项目 tableconvert.com 还在继续维护,并且新增了一些花里胡哨的功能。
作为一个后端程序员,有不少处理数据的小需求,比如:
  • 批量给字段添加引号,拼接成 SELECT ... WHERE in (xxx) SQL ;
  • 把运营整理好 Excel 按规则批量生成 UPDATE SQL;
  • 按规则批量创建带内容文件
  • 批量替换文件名 / 文件内容
  • 快速把在 MySQL 命令行里的查询结果转换成 CSV 、Excel 、JSON 或 Markdown 表格等等

    实现这些需求的方式多种多样,可以用命令、脚本或正则替换,程序员肯定不会一条条手敲。我把这些需求塞到了表格转换工具的 Magic 转换器,我几乎每天都会用到它,这也是持续维护它的原因。
    Magic 转换器传送门: https://tableconvert.com/excel-to-magic

    Magic 转换器是什么?
    TableConvert 表格转换工具一共有 28 种转换器,Magic 转换器是其中之一,也是我最常用的转换器,它内置了像 awk 命令一样的指令,用户可以根据这些指令设计自己期望的规则数据。Magic 转换器支持的语法指令有:
    [td]语法指令[/td][td]描述[/td][td]支持哪些 JS 方法[/td]{h1} {h2} ...1th, 2th ... field of heading, Aka {hA} {hB} ...String methods{$1} {$2} ...1th, 2th ... field of current row, Aka {$A} {$B} ...String methods{F,} {F;}Split the current row by the string after F{NR} {NR+100}Line Number of current Row from 1 or 100{ENR}End line Number of Rows{$0}All Fields of current rowArray methods{NF}Number of Fields{x ...}Execute JavaScript code, eg: {x new Date()}{...\}Use backslash \ to output braces {...}
    Magic 转换器能做什么?
    1. 批量给指定列添加双引号( Built-in Magic )
    Row Magic:
    "{$1}"{x if(NR
    生成效果:
    "Markdown", "Magic", "LaTeX", "SQL", "HTML", "CSV", "Excel", "JSON", "JSONLines", "ASCII", "MediaWiki", "AsciiDoc", "Qlik", "DAX", "Firebase", "YAML", "XML", "Jira", "Textile", "reStructuredText", "PHP", "Ruby", "ASP", "ActionScript", "TracWiki", "BBCode", "PDF", "JPEG"
    2. 生成按第一列作为 WHERE 条件修改第二列的 UPDATE SQL ( Built-in Magic )
    Row Magic:
    UPDATE user set name ='{$2}' WHERE id='{$1}';`
    生成效果:
    UPDATE user set name ='Roberta' WHERE id='1';
    UPDATE user set name ='Oliver' WHERE id='2';
    UPDATE user set name ='Shayna' WHERE id='3';
    ...
    3. 批量生成创建相同规则内容的文件命令( Built-in Magic )
    Row Magic:
    echo "title: File {$2}
    date: {x new Date().getTime()}
    " > docs/{$2}.md
    生成效果:
    echo "title: File name
    date: 1673493211739
    " > docs/name.md
    echo "title: File Roberta
    date: 1673493211739
    " > docs/Roberta.md
    ...
    4. 批量替换文件名( Built-in Magic )
    Row Magic:
    mv {$2} {$2.replace('e', 'E')}-generator.json`
    生成效果:
    mv name namE-generator.json
    mv Roberta RobErta-generator.json
    mv Oliver OlivEr-generator.json
    ...
    还能玩儿出什么花来?篇幅有限,就不一一列举了。V 友有常用的 Magic 模板,可以在评论区留言,我会它按使用频率整理并添加到 Built-in Magic 中。
    公司要倒闭了,没啥事儿,这次有时间对 Magic 转换区进行升级,分享给大家,各位轻喷,谢谢!
    - 修复了数据源和 Table 生成器重叠的问题
    - 添加了去重复行的按钮
    - 删除重复行和列合并为一个按钮
    贴一个 Table Editor 的使用动画:
    https://tva1.sinaimg.cn/large/008vxvgGgy1ha5iag13vmg30m90acnkw.gif
    一个 Magic 转换器的演示视频:
    https://t.me/tableconvert/23
    第 2 条附言  ·  2 小时 55 分钟前
    gif 太大了导致图床 403 ,Table Editor 演示在这里 https://t.me/tableconvert/25
  • liweiliang   
    - 修复了数据源和 Table 生成器重叠的问题
    - 添加了去重复行的按钮
    - 删除重复行和列合并为一个按钮
    贴一个 Table Editor 的使用动画:
    https://tva1.sinaimg.cn/large/008vxvgGgy1ha5iag13vmg30m90acnkw.gif
    一个 Magic 转换器的演示视频:
    https://t.me/tableconvert/23
    Alexpy   
    gif 太大了导致图床 403 ,Table Editor 演示在这里 https://t.me/tableconvert/25
    Raos   
    原来这个是大佬的,之前有用到
    fds   
    666
    Alexpy   
    这个工具我一直在用,期待已久的 MySQL 查询结果转换成其它格式终于有了,赞
    Fechin
    OP
      
    厉害了。我之前都是写不同 python 脚本处理,没想到要做成工具。
    sarices   
    @fds 我也是写了一大堆脚本
    wcao   
    @fds 自从用上 Magic 转换器就很少写脚本了,一些简单的需求在 IDE 里用正则替换也很方便
    @Alexpy 工具比写脚本快
    zqjilove   
    感谢,有在用,以前都以为是外国友人的作品,因为是工具类而且是英文版,没有深究是哪里的。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部