js将xlsx/xls 转为json

10 篇文章 0 订阅
2 篇文章 0 订阅
  1. 把 xlsx/xls 转换为 csv
    将文件另存为csv文件

  2. 把 csv 转换为 json
    可以在 VS Code 里安装 JSON to CSV插件实现格式转换:

首先打开 VS Code
搜索插件 JSON to CSV 并安装
把 csv 文件拖拽到 VS Code
按 Ctrl + Shift + P 打开命令面板
输入命令:Convert CSV to JSON 并回车
此时已转换为 JSON 格式了,但只是一维数组格式的 JSON。

  1. 把一维数组结构转换为树形结构
    定义一个函数,把step2的 JSON 数据作为参数传递进此函数,将返回一个树形结构的 JS 对象:
function listToTree(list) {
  let tree = {
    label: 'root',
    value: '',
    level: 0,
    children: [],
  }
  let currParent = tree

  list.forEach((item) => {
    ;[
      ['一级'],
      ['二级'],
      ['三级'], // 表格的标题
    ].forEach(([item], index) => {
      const label= item[item]
      const value= item[item]
      const level = index + 1

      if (label) {
        let node = {}
        node.label= label
        node.value = value
        node.level = level

        while (currParent.level >= level) {
          currParent = currParent.parent
        }

        let children = currParent.children
        if (!children) {
          children = currParent.children = []
        }

        node.parent = currParent
        children.push(node)
        currParent = node
      }
    })
  })

  return tree
}
  1. 把树形结构 JS 对象转换为 JSON 字符串
function treeToJson(tree) {
  function recurse(children) {
    return children.map((item) => {
      const node = {
        label: item.label,
        value: item.value,
      }
      if (item.children) {
        node.children = recurse(item.children)
      }
      return node
    })
  }
  return JSON.stringify(recurse(tree.children))
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值