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

一键将 JSON 数组转为 Excel 表格

  •  
  •   xeaglex ·
    eaglexiang · 310 天前 · 2019 次点击
    这是一个创建于 310 天前的主题,其中的信息可能已经有所发展或是发生改变。

    日常工作中常常会有临时导出数据的需求,几乎所有数据源都可以很方便地导出数据为 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  
       309 天前 via iPhone
    蛮好的,提个建议,这个参数上敲起来有点长,如果是 json2excel src.json 这样会不会更好,生成同名于同目录的 xlsx 。我工作写的网页应用实现过同样的需求过,前端的轮子很多,既然我都需要转 excel 了,运行环境上也应该有浏览器,在线转换也蛮多的,我个人可能用不上。
    discrete
        2
    discrete  
       309 天前   ❤️ 5
    额,你知不知道 Python 里就两行

    ```
    import pandas as pd
    pd.DataFrame(json_dict).to_excel("output.xls")
    ```
    twofox
        3
    twofox  
       308 天前
    一般来说,如果需要导出临时数据。我会直接选择 sql 查询完之后,用 navicat 或者 plsql developer 直接导出=.=
    faketemp
        4
    faketemp  
       307 天前
    看你描述发现不止一两个人有 json 数据提取的需求,也曾经尝试在 V 站问过无果( https://www.v2ex.com/t/883757)
    受你鼓舞也用 Golang 造个轮子不知有没有用,Json2Csv 工具( https://www.v2ex.com/t/951253)
    kylebing
        5
    kylebing  
       307 天前
    一个可以查看 json 数组数据的网站: https://kylebing.cn/tools/json-table
    faketemp
        6
    faketemp  
       307 天前 via iPhone
    @kylebing 随便试了一个 json 就报错了
    TypeError: undefined is not a function (near '...this.data.forEach...')
    kylebing
        7
    kylebing  
       307 天前
    @faketemp #6 只支持显示数组数据
    supersadmin
        8
    supersadmin  
       307 天前
    faketemp
        9
    faketemp  
       306 天前
    已升级兼容处理数据区域非数组结构而是一个对象的情况,如
    {"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  
       306 天前
    这种轮子太多了
    haoxuexiaoyao
        11
    haoxuexiaoyao  
       306 天前
    结构复杂岁 json 如何生成 Excel 呢
    yuanchao
        12
    yuanchao  
       306 天前
    但是往往都不是这种简单的表格,可能是复杂的,需要进行合并的,这种能处理吗
    musi
        13
    musi  
       306 天前
    pandas 不够简单嘛?
    简单的我用 pd 直接导出就可以
    复杂点的我用 pd 处理后再导出也可以
    9yue
        14
    9yue  
       305 天前
    造轮子 Json2Csv, JS HTMl 自带 UI 版本 ( https://www.v2ex.com/t/951793)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2957 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:46 · PVG 16:46 · LAX 01:46 · JFK 04:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.