一个纯后端写的纯前端项目,表格转换工具 TableConvert - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Fechin
V2EX    分享创造

一个纯后端写的纯前端项目,表格转换工具 TableConvert

&bsp; Fechin
PRO
2020-04-27 16:57:37 +08:00 14402 次点击
这是一个创建于 1992 天前的主题,其中的信息可能已经有所发展或是发生改变。

一个纯后端,写前端真实磨人,断断续续做了一年多,斗胆拿出来给 V 友们尝尝!

https://tableconvert.com

为什么开发这个工具?

  • 博文用 Markdown 编写,表格写起来麻烦,就想做个在线写 Markdown 的工具
  • 工作中需要把 Excel 的表格数据转换成代码
  • 快速把 Excel 文件入库.
  • ...

于是就有了它。代码已经越写越乱,自己都看不下去了...

2.功能列表:

  • 简单的类 WYSIWYG 表格编辑器
  • 实时输出 Markdown 、JSON 、LaTeX 、Excel 等将近 20 种格式的数据
  • 导入 Excel 、JSON 、CSV 、HTML 等 7 种格式的数据,实现互转
  • 每种格式有单独的 Options 可定制输出
  • 从 URL 中抓取 HTML 表格
  • 把各种表格转换成 PDF 或 JPG 图片

导入和输出结合起来就能实现 JSON 转 CSV 、Excel 转 Insert SQL 、JSON 转 Markdown 、CSV 转 Markdown 、Excel 转 LaTeX 表格、HTML table 转 DIV table 、LaTeX 转 Excel 等等功能。

3.通过 URL 导入

https://tableconvert.com/?import={import}&output={output}&data={url} 

import : html | csv (默认) | json | markdown | latex ...

output : markdown (默认) | excel | mediawiki | xml | latex ...

url: 包含import格式文本的网址

举个栗子:

https://tableconvert.com/?output=json&data=https://gist.githubusercontent.com/curran/a08a1080b88344b0c8a7/raw/d546eaee765268bf2f487608c537c05e22e4b221/iris.csv 

4.IDEA 输出

这是一个自定义的输出格式,有三个表达式可用:

  • <sep>: 按 sep 分隔每行的单元格
  • $n: 取第 n 列,这里 n 从 0 开始
  • +n: 从 n 递增,可用做 id 自增

举个栗子: 怎样快速将表格数据转换成 Java 代码?

Header Template: 为空

Rows Template: list.add(new String[]{"<",">"});

输出:

list.add(new String[]{"id","name","age","gender"}); list.add(new String[]{"1","Roberta","39","M"}); list.add(new String[]{"2","Oliver","25","M"}); ... 

很久没认真发帖了,欢迎给出你的意见~~

第 1 条附言    2020-04-29 12:43:31 +08:00
- 新增了 SQL 导入,用正则做的,所以 SQL 文本可以包含注释,正则可能不太稳定,欢迎大家提 BUG
- 内容为空点 Download 无效
- 导入 Excel 乱码是因为还没集成 Excel 库,排期中~

没想到有这么多人在用,这么多人喜欢,感谢感谢!
103 条回复    2023-01-12 09:18:29 +08:00
1  2  
kaiki
    1
kaiki  
   2020-04-27 17:05:53 +08:00   1
真是个好东西
hg
    2
hg  
   2020-04-27 17:18:12 +08:00   1
真棒~
somefree
    3
somefree  
   2020-04-27 17:25:20 +08:00   1
niubility~
U7Q5tLAex2FI0o0g
    4
U7Q5tLAex2FI0o0g  
   2020-04-27 17:26:07 +08:00   1
非常好
justin2018
    5
justin2018  
   2020-04-27 17:27:03 +08:00   1
挺好用的~~ 之前分享过 原来作者竟然在 v 站
MaxTan
    6
MaxTan  
   2020-04-27 17:34:17 +08:00   1
挺实用的,赞一个
Ritter
    7
Ritter  
   2020-04-27 17:42:59 +08:00   1
niu
SuperManNoPain
    8
SuperManNoPain  
   2020-04-27 17:47:39 +08:00   1
导入 excel 后遇到了乱码问题.不知道是不是我自己文件的问题
Alexpy
    9
Alexpy  
   2020-04-27 17:52:19 +08:00   1
good
ksc010
    10
ksc010  
   2020-04-27 17:59:06 +08:00   1
中文 导出 pdf 乱码
sanggao
    11
sanggao  
   2020-04-27 18:01:58 +08:00   1
刚用 发现一个 bug
SuperManNoPain
    12
SuperManNoPain  
   2020-04-27 18:05:31 +08:00   1
直接从 excel 复制进去还是很好用的, 很棒的工具,希望能维护下去
looseChen
    13
looseChen  
   2020-04-27 18:06:23 +08:00   1
之前看到阮一峰推荐过这个工具,用过几次,感觉还不错。
huiyadanli
    14
huiyadanli  
   2020-04-27 18:09:59 +08:00   1
用过,很好用!
zhuzhifen
    15
zhuzhifen  
   2020-04-27 18:16:16 +08:00   1
很不错耶~
qiayue
    16
qiayue  
PRO
   2020-04-27 18:22:04 +08:00   1
试用了一下,很好用
djzhao
    17
djzhao  
   2020-04-27 18:28:25 +08:00 via Android   1
谢 大佬!
chanshiyu
    18
chanshiyu  
   2020-04-27 18:34:02 +08:00 via Android   1
已经用了好久了的说
Fechin
    19
Fechin  
OP
PRO
   2020-04-27 18:46:01 +08:00   1
@justin2018 感谢分享~
@SuperManNoPain Download 或者建个空 Excel 、工具里点 Copy,粘贴进去不会乱码吧
@ksc010 感谢反馈,我会尽快修正
@sanggao 老哥,什么 bug,描述一下~
@SuperManNoPain 会一直维护的
jedicxl
    20
jedicxl  
   2020-04-27 18:57:46 +08:00   1
原来是楼主做的,真的棒!
wbrobot
    21
wbrobot  
   2020-04-27 19:02:47 +08:00   1
东西不错,我来提需求了
居然没有 sqlite... 和 MS Access... 加油呀!
sorry
    22
sorry  
   2020-04-27 19:05:18 +08:00   1
赞~
Cmdhelp
    23
Cmdhelp  
   2020-04-27 19:07:05 +08:00   1
google adsense 怎么申请 ,
建议,空文档不要让点击下载了
YOUMA
    24
YOUMA  
   2020-04-27 19:07:28 +08:00   1
之前看到阮一峰推荐过这个工具,用过几次,感觉还不错。
yafoo
    25
yafoo  
   2020-04-27 19:16:18 +08:00 via Android   1
支持,手机端样式需要优化下
mader
    26
mader  
   2020-04-27 20:19:23 +08:00   1
同导入 excel 乱码
chaselen
    27
chaselen  
   2020-04-27 22:11:27 +08:00 via Android   1
怎么合并单元格呢
HuberyPang
    28
HuberyPang  
   2020-04-28 09:04:51 +08:00   1
已加入收藏夹,支持,非常 nice
Fechin
    29
Fechin  
OP
PRO
   2020-04-28 09:47:00 +08:00   1
@wbrobot 老哥,SQL 输出计划只开一个口,SQL 语法大部分通用,如果有 SQL Options 可以告诉我
@Cmdhelp 建议已收下,谢谢
@yafoo 感觉手机上很少用到表格转换,一直没关系手机样式~
@mader 是下载后的 Excel 打开乱码嘛?我在 Mac 和 Windows 测试了中文导出,没能复现问题
@chaselen 不支持合并单元格哦,合并了很多输出格式就没法用了
Vegetable
    30
Vegetable  
   2020-04-28 09:53:23 +08:00   1
乱码可能是因为 windows 的 excel 使用 gbk 的原因,不知道你有没有做过这方面的处理.
levon
    31
levon  
   2020-04-28 09:53:35 +08:00   1
哇,我经常使用的一个产品啊,非常不错
Vegetable
    32
Vegetable  
   2020-04-28 09:57:38 +08:00   1
只复现了 pdf 的中文乱码,excel 没复现成功, 东西是好东西,经常能用到
暂时不用写代码把 excel 转成 json 了哈哈
gloye
    33
gloye  
   2020-04-28 10:04:55 +08:00   1
太强了!
secretName
    34
secretName  
   2020-04-28 10:06:33 +08:00   1
很好的产品,赞一个
ImaChenai
    35
ImaChenai  
   2020-04-28 10:20:09 +08:00   1
qiguai2017
    36
qiguai2017  
   2020-04-28 10:29:38 +08:00   1
要是能单元格合并,表格内嵌表格就更赞了
yazoox
    37
yazoox  
   2020-04-28 10:37:23 +08:00 via Android   1
真厉害啊!牛!
wbrobot
    38
wbrobot  
   2020-04-28 10:43:33 +08:00
@Fechin 我是说导入,我想把 sqlite 转 json,或者转 sql 语句导入 MySQL
yuyu2140
    39
yuyu2140  
   2020-04-28 10:51:01 +08:00   1
直戳我心坎,赞一个
Fechin
    40
Fechin  
OP
PRO
   2020-04-28 11:42:19 +08:00
@Vegetable 没做特殊处理,我研究下~
Fechin
    41
Fechin  
OP
PRO
   2020-04-28 11:43:52 +08:00
@wbrobot 好的,导入 SQL 已经在排期了,我加个急
wbrobot
    42
wbrobot  
   2020-04-28 12:15:45 +08:00   1
@Fechin sqlite 是单文件,有 js 库可以直接读
noparking188
    43
noparking188  
   2020-04-28 13:00:12 +08:00 &nbp; 1
早就收藏在用了,感谢作者
violetlai
    44
violetlai  
   2020-04-28 13:32:29 +08:00   1
很好用,刚刚 v 站卖二手还用到了
ccsulzf0627
    45
ccsulzf0627  
   2020-04-28 17:12:47 +08:00   1
厉害,优秀
myjava
    46
myjava  
   2020-04-28 17:18:41 +08:00   1
非常棒
mader
    47
mader  
   2020-04-28 20:11:36 +08:00   1
@Fechin excel 上传导入的时候乱码
0uyangtian
    48
0uyangtian  
   2020-04-29 09:03:09 +08:00   1
其他输出格式不知道,但是 PHP 的输出格式是有问题的,既然表格有表头,那么表头的值就应该作为 PHP 数组里面的 key 值,而不是作为 value 输出
yuankui
    49
yuankui  
   2020-04-29 10:57:21 +08:00   1
好东西啊!请问楼主表格编辑用的啥库?
Fechin
    50
Fechin  
OP
PRO
   2020-04-29 12:44:49 +08:00
@wbrobot 新增了 SQL 导入,来测试一个
Fechin
    51
Fechin  
OP
PRO
   2020-04-29 12:46:50 +08:00
@mader 好的,是因为没有添加 Excel 读取库,排期中~
@0uyangtian 感谢建议,我没整过 PHP,后期会加一个 k/v 格式的 Options
laycher
    52
laycher  
   2020-04-29 13:18:36 +08:00   1
用 Firefox,打开后 点点一直再闪,点其他的没用,难道我的姿势不对?
Fechin
    53
Fechin  
OP
PRO
   2020-04-29 14:06:27 +08:00
@laycher 问题已修复,Firefox 浏览器不支持 Lookbehind 正则语法导致的
Keyes
    54
Keyes  
   2020-04-29 14:15:38 +08:00 via iPhone   1
@SuperManNoPain 加 BOM 试试
zerogzs
    55
zerogzs  
   2020-04-29 14:54:53 +08:00   1
真不错!
GopherTT
    56
GopherTT  
   2020-04-29 22:18:58 +08:00   1
挺不错的呀 样式也好看
jiewuza
    57
jiewuza  
   2020-04-29 23:28:10 +08:00 via Android   1
确实蛮好用的
不过我更想要的是不规则表格的制作
能够支持从网页表格到 latex 的转换就好(其他很多格式本身也不能支持)
creatdate
    58
creatdate  
   2020-04-30 08:01:25 +08:00   1
不错,可用。
apeople
    59
apeople  
   2020-04-30 08:35:25 +08:00   1
厉害啊,收藏了
Fechin
    60
Fechin  
OP
PRO
   2020-04-30 10:11:55 +08:00
@jiewuza
@qiguai2017
@chaselen

三位提到都提到了复杂的表格,比如合并和嵌套,如果要支持复杂表格,那么现有的很多格式将不可用,比如 CSV 、SQL 、JSON 、Markdown 等,目前支持的格式多数都是规则的二维表。

我想到的时检测到目前正在编辑复杂表格后,不可用的格式置灰,大家有什么好建议?
jucelin
    61
jucelin  
   2020-04-30 10:21:35 +08:00   1
有个小问题,输入中文的时候,首字母丢了
https://i.loli.net/2020/04/30/e7PRCSHxaW4jfX9.png
kokdemo
    62
kokdemo  
   2020-04-30 10:51:33 +08:00   1
这个居然是楼主做的,太厉害了

我在这篇文章里就提到 https://wocai.de/post/2019/05/%E5%B8%B8%E7%94%A8%E7%9A%84-markdown-%E5%B7%A5%E5%85%B7/#%E5%9B%9B-%E8%A1%A8%E6%A0%BC%E7%94%9F%E6%88%90

当时还以为是国外的开发者的作品……
Fechin
    63
Fechin  
OP
PRO
   2020-04-30 10:53:03 +08:00
@jucelin 这是个很有意思的问题,你先按 Enter 或者双击单元格,再输入中文
lidongdongnk
    64
lidongdongnk  
   2020-04-30 10:58:36 +08:00   1
真好,赞美作者
jucelin
    65
jucelin  
   2020-04-30 10:59:32 +08:00   1
@Fechin #62 这是选中后直接输入的时候出现的,如果已经进入输入态,就没有这个问题了
Fechin
    66
Fechin  
OP
PRO
   2020-04-30 11:06:06 +08:00   1
@kokdemo 感谢感谢!中式英语,写点文章全靠翻译~
Fechin
    67
Fechin  
OP
PRO
   2020-04-30 11:12:10 +08:00
@yuankui 编辑器没有用到库,自己开发的
xrr2016
    68
xrr2016  
   2020-04-30 12:30:41 +08:00   1
大佬 NB !
zhezhi
    69
zhezhi  
   2020-04-30 12:59:18 +08:00   1
收藏备用。
jin7
    70
jin7  
   2020-04-30 13:21:07 +08:00   1
lz
php 自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。
NickyPP
    71
NickyPP  
PRO
   2020-04-30 16:12:04 +08:00   1
UI 很舒服,收藏了
Clay0620
    72
Clay0620  
   2020-04-30 16:17:03 +08:00   1
jiewuza
    73
jiewuza  
   2020-04-30 22:56:47 +08:00 via Android
@Fechin
我觉得把不支持复杂表格的格式变灰,是完全可以接受的
并且非常期待这个功能
kevtyle
    74
kevtyle  
   2020-05-01 13:12:22 +08:00   1
楼主是怎么转换 excel 文件的,比较好奇
loading
    75
loading  
   2020-05-01 13:47:47 +08:00   1
不错,挺好。
YOUMA
    76
YOUMA  
   2020-05-01 15:35:06 +08:00
其他输出格式不知道,但是 PHP 的输出格式是有问题的,既然表格有表头,那么表头的值就应该作为 PHP 数组里面的 key 值,而不是作为 value 输出
bobsam
    77
bobsam  
   2020-05-06 12:57:12 +08:00
想知道是怎么实现的呢?会开源吗?
freak118
    78
freak118  
   2020-05-06 13:29:29 +08:00
NB
abelce
    79
abelce  
   2020-05-07 14:07:12 +08:00
终于找到作者了,以前用过
ztjryg4
    80
ztjryg4  
   2020-05-08 13:43:40 +08:00
用到过这个,非常好用,当时还以为是国外开发者的作品,没想到作者是 v 友,感谢!
同遇到过中文输入吃首字母的问题,已经了解可以先 Enter 再输入,不过如果能像英文一样直接输入的话感觉会更方便。
Flywith24
    81
Flywith24  
   2020-05-08 18:21:52 +08:00
用例很久了,点赞
gunavy
    82
gunavy  
   2020-05-08 19:12:45 +08:00
好用!
vison09
    83
vison09  
   2020-05-09 10:19:12 +08:00
马克
sunshinev
    84
sunshinev  
   2020-05-09 10:32:33 +08:00
很有新意啊,点赞
insaneguy
    85
insaneguy  
   2020-05-09 10:57:21 +08:00
非常赞,感谢分享!
namelosw
    86
namelosw  
   2020-05-12 00:06:30 +08:00
很不错
自动下载是不是可以关掉,或者可以设置……切一切 tab 不小心就下了好几个文件。
对前端感兴趣也可以试试下载先到浏览器 blob 直接预览,然后点击下载。
chnyung
    87
chnyung  
   2020-05-12 12:32:12 +08:00
用来一下非常好!特意登陆上来感谢作者。谢谢你大佬
goldenalex
    88
goldenalex  
   2020-05-12 15:23:15 +08:00
试用了一下,感觉不错哦。。。

支持支持。。。

发现两个小问题。。。

1 、pdf 输出中文乱码
2 、md 输出,在数据中有较长的数据和空数据混合的情况下会对不齐
meisen
    89
meisen  
   2020-05-12 16:49:48 +08:00
感谢分享
rp722
    90
rp722  
   2020-05-12 17:25:44 +08:00
给力 好东东
zhenlang
    91
zhenlang  
   2020-05-12 22:59:51 +08:00
这 ui 不错啊,老哥创意满满
jones2000
    92
jones2000  
   2020-05-13 01:49:16 +08:00
没有考虑对大数据量的处理逻辑, 比如 10W 条数据的显示和实时更新。前端表格开源的很多, 但对大数据量的显示支持的很少,基本上 10W 条数据就卡了。
96412hj
    93
96412hj  
   2020-05-13 15:2:24 +08:00
老哥 开源吗
Fechin
    94
Fechin  
OP
PRO
   2020-05-13 17:50:55 +08:00
@jin7 感谢分享
@kevtyle https://github.com/linways/table-to-excel
@bobsam @96412hj 代码写的太乱了,以后把代码模块化了再考虑
@ztjryg4 这个问题还没找到解决办法~
@namelosw 感谢反馈
@jones2000 大数据显示倒是有解决方案,可尝试屏幕可见区动态渲染表格,非可见区不渲染,关键是实时处理大数据的格式转换这是个问题
Fechin
    95
Fechin  
OP
PRO
   2020-05-13 17:54:45 +08:00   1
@goldenalex pdf 中文乱码需要导入字体,会拖慢网站速度,排期研究中~,转 markdown 时单元格内容存在空格确实会变形,不过空格属于内容了,不能强制修改,倒是可以加一个对单元格数据的查找替换的工具
liuye1992
    96
liuye1992  
   2020-05-14 04:18:34 +08:00
好,灰常实用。就没看懂这个令人费解的标题。

在我看来这不就是个数据结构转换器。转换出来的各类常用的数据结构文档经常会在网站开发中用到而已。
em2046
    97
em2046  
   2020-05-22 20:41:12 +08:00

提报一个 Bug,转 JSON 格式时,空格会丢失。
em2046
    98
em2046  
   2020-05-22 20:53:22 +08:00

还有一个小的体验问题,控制条在最右侧边缘时显示不完全,无法进行删除列操作。
justin2018
    99
justin2018  
   2020-05-27 16:27:14 +08:00
@Fechin 楼主 咨询下 这个地方是用的开源的库吗? 谢谢~ 其实想偷懒

![Q3YIdsm]( )
laycher
    100
laycher  
   2021-01-06 13:20:26 +08:00
@Fechin 请问,我有 excel 文件导入是乱码?这个如何解决?
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5999 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 32ms UTC 03:28 PVG 11:28 LAX 20:28 JFK 23:28
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86