一键将 JSON 数组转为 Excel 表格

2023-06-22 16:19:44 +08:00
 xeaglex

日常工作中常常会有临时导出数据的需求,几乎所有数据源都可以很方便地导出数据为 JSON 格式,例如:

[
    {
        "ID":0,
        "Name":"Lucy",
        "Age":17,
        "Granted":true
    },{
        "ID":1,
        "Name":"Lily",
        "Age":20,
        "Granted":false
    }
]

但要将这 JSON 转成 Excel 表格,不写脚本还挺麻烦的。虽然脚本写起来很简单,写的次数多了也就烦了,所以干脆 Release 成一个通用的工具:github.com/eaglexiang/json2excel ,基于 Go 开发,提供 Release 下载。

举个例子,上面的数据通过以下命令

json2excel --if src.json --of dst.xlsx

就可以一键转化成以下 Excel 文件

2262 次点击
所在节点    分享创造
14 条回复
Felix96
2023-06-23 02:00:08 +08:00
蛮好的,提个建议,这个参数上敲起来有点长,如果是 json2excel src.json 这样会不会更好,生成同名于同目录的 xlsx 。我工作写的网页应用实现过同样的需求过,前端的轮子很多,既然我都需要转 excel 了,运行环境上也应该有浏览器,在线转换也蛮多的,我个人可能用不上。
discrete
2023-06-23 03:28:35 +08:00
额,你知不知道 Python 里就两行

```
import pandas as pd
pd.DataFrame(json_dict).to_excel("output.xls")
```
twofox
2023-06-24 14:06:57 +08:00
一般来说,如果需要导出临时数据。我会直接选择 sql 查询完之后,用 navicat 或者 plsql developer 直接导出=.=
faketemp
2023-06-24 19:12:14 +08:00
看你描述发现不止一两个人有 json 数据提取的需求,也曾经尝试在 V 站问过无果( https://www.v2ex.com/t/883757)
受你鼓舞也用 Golang 造个轮子不知有没有用,Json2Csv 工具( https://www.v2ex.com/t/951253)
kylebing
2023-06-25 08:55:18 +08:00
一个可以查看 json 数组数据的网站: https://kylebing.cn/tools/json-table
faketemp
2023-06-25 09:06:51 +08:00
@kylebing 随便试了一个 json 就报错了
TypeError: undefined is not a function (near '...this.data.forEach...')
kylebing
2023-06-25 09:23:00 +08:00
@faketemp #6 只支持显示数组数据
supersadmin
2023-06-25 11:46:17 +08:00
faketemp
2023-06-26 06:45:09 +08:00
已升级兼容处理数据区域非数组结构而是一个对象的情况,如
{"part":1,"data":{"items":{"1":{"title":"one","name":"test1"},"2":{"title":"two","name":"test2"},{"3":{"title":"three","name":"test3"}}}}

这种结构遇到过多次但在线网站和各种工具均不支持解析提取,干脆自己也尝试兼容了
Json2Csv -k data.items test.json 即可提取全部"title/name"
HashV2
2023-06-26 09:46:38 +08:00
这种轮子太多了
haoxuexiaoyao
2023-06-26 09:55:03 +08:00
结构复杂岁 json 如何生成 Excel 呢
yuanchao
2023-06-26 10:58:16 +08:00
但是往往都不是这种简单的表格,可能是复杂的,需要进行合并的,这种能处理吗
musi
2023-06-26 11:07:24 +08:00
pandas 不够简单嘛?
简单的我用 pd 直接导出就可以
复杂点的我用 pd 处理后再导出也可以
9yue
2023-06-27 10:17:45 +08:00
造轮子 Json2Csv, JS HTMl 自带 UI 版本 ( https://www.v2ex.com/t/951793)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/950873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX