V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xeaglex
V2EX  ›  分享创造

一键将 JSON 数组转为 Excel 表格

  •  
  •   xeaglex ·
    eaglexiang · 2023-06-22 16:19:44 +08:00 · 2265 次点击
    这是一个创建于 521 天前的主题,其中的信息可能已经有所发展或是发生改变。

    日常工作中常常会有临时导出数据的需求,几乎所有数据源都可以很方便地导出数据为 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 文件

    image

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

    ```
    import pandas as pd
    pd.DataFrame(json_dict).to_excel("output.xls")
    ```
    twofox
        3
    twofox  
       2023-06-24 14:06:57 +08:00
    一般来说,如果需要导出临时数据。我会直接选择 sql 查询完之后,用 navicat 或者 plsql developer 直接导出=.=
    faketemp
        4
    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
        5
    kylebing  
       2023-06-25 08:55:18 +08:00
    一个可以查看 json 数组数据的网站: https://kylebing.cn/tools/json-table
    faketemp
        6
    faketemp  
       2023-06-25 09:06:51 +08:00 via iPhone
    @kylebing 随便试了一个 json 就报错了
    TypeError: undefined is not a function (near '...this.data.forEach...')
    kylebing
        7
    kylebing  
       2023-06-25 09:23:00 +08:00
    @faketemp #6 只支持显示数组数据
    supersadmin
        8
    supersadmin  
       2023-06-25 11:46:17 +08:00
    faketemp
        9
    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
        10
    HashV2  
       2023-06-26 09:46:38 +08:00
    这种轮子太多了
    haoxuexiaoyao
        11
    haoxuexiaoyao  
       2023-06-26 09:55:03 +08:00
    结构复杂岁 json 如何生成 Excel 呢
    yuanchao
        12
    yuanchao  
       2023-06-26 10:58:16 +08:00
    但是往往都不是这种简单的表格,可能是复杂的,需要进行合并的,这种能处理吗
    musi
        13
    musi  
       2023-06-26 11:07:24 +08:00
    pandas 不够简单嘛?
    简单的我用 pd 直接导出就可以
    复杂点的我用 pd 处理后再导出也可以
    9yue
        14
    9yue  
       2023-06-27 10:17:45 +08:00
    造轮子 Json2Csv, JS HTMl 自带 UI 版本 ( https://www.v2ex.com/t/951793)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5774 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.