excel 树结构json_excel转换json的强大工具

excel 树结构json_excel转换json的强大工具让excel支持表达复杂的json格式,将xlsx文件转成json。使用说明目前只支持.xlsx格式,不支持.xls格式。本项目是基于nodejs的,所以需要先安装nodejs环境。执行命令#Clonethisrepositorygitclonehttps://github.com/koalaylj/xlsx2json.git#Gointotherepositorycdxlsx…

大家好,又见面了,我是你们的朋友全栈君。

让excel支持表达复杂的json格式,将xlsx文件转成json。

使用说明

目前只支持.xlsx格式,不支持.xls格式。

本项目是基于nodejs的,所以需要先安装nodejs环境。

执行命令

# Clone this repository

git clone https://github.com/koalaylj/xlsx2json.git

# Go into the repository

cd xlsx2json

# Install dependencies

npm install

配置config.json

{

“xlsx”: {

“head”: 2,// 表头所在的行,第一行可以是注释,第二行是表头。

“src”: “./excel/**/[^~$]*.xlsx”, // xlsx文件 glob配置风格

“dest”: “./json”, // 导出的json存放的位置

“arraySeparator”:”,” // 数组的分隔符

}

}

注:

excel导出json:

windows: 双击export.bat 即可将 ./excel/*.xlsx 文件导出到 ./json 下。

mac: 运行./export.sh 即可将 ./excel/*.xlsx 文件导出到 ./json 下。

还支持命令行传参导入导出特定excel,具体使用 node index.js –help 查看。

json名字以excel的sheet名字命名。

示例1 test.xlsx

id

desc

flag

nums#[]

words#[]

map#[]/

data#{}

hero#[{}]

123

description

true

1,2

哈哈,呵呵

true/true

a:123;b:45

id:2;level:30,id:3;level:80

456

描述

false

3,5,8

shit,my god

false/true

a:11;b:22

id:9;level:38,id:17;level:100

输出如下:

[{

“id”: 123,

“desc”: “description”,

“flag”: true,

“nums”: [1, 2],

“words”: [“哈哈”, “呵呵”],

“map”: [true, true],

“data”: {

“a”: 123,

“b”: 45

},

“hero”: [

{“id”: 2,”level”: 30},

{“id”: 3,”level”: 80}

]

}, {

“id”: 456,

“desc”: “描述”,

“flag”: false,

“nums”: [3, 5, 8],

“words”: [“shit”, “my god”],

“map”: [false, true],

“data”: {

“a”: 11,

“b”: 22

},

“hero”: [

{“id”: 9, “level”: 38 },

{“id”: 17,”level”: 100}

]

}]

支持以下数据类型

number 数字类型。

boolean 布尔。

string 字符串。

date 日期类型。

object 简单对象,暂时不支持对象里面有对象或数组这种。

number-array 数字数组。

boolean-array 布尔数组。

string-array 字符串数组。

object-array 对象数组。

id 主键类型(当表中有这个类型的时候,json会以map格式输出,否则以数组格式输出)。

表头规则

基本数据类型(string,number,bool)时候,一般不需要设置会自动判断,但是也可以明确声明数据类型。

字符串类型:命名形式 列名#string 。

数字类型:命名形式 列名#number 。

日期类型:列名#date 。日期格式要符合标准日期格式。比如YYYY/M/D H:m:s or YYYY/M/D 等等。

布尔类型:命名形式 列名#bool 。

基本类型数组:命名形式 列名#[],数组元素默认用逗号分隔(a,b,c),自定义数组元素分隔符列名#[]/(a/b/c)。

对象:命名形式 列名#{} 。

对象数组:命名形式列名#[{}] 。

主键:命名形式列名#id 。

数据规则

关键符号都是半角符号。

对象属性使用分号;分割。

原理说明

依赖 node-xlsx 这个项目解析xlsx文件。

xlsx就是个zip文件,解压出来都是xml。有一个xml存的string,有相应个xml存的sheet。通过解析xml解析出* excel数据(json格式),这个就是node-xlsx 做的工作。

本项目只需利用 node-xlsx 解析xlsx文件,然后拼装自己的json数据格式。

补充

实验环境:win7_x64 + nodejs_v0.10.25(可在linux上执行)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131586.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月12日 上午8:00
下一篇 2022年6月12日 上午8:00


相关推荐

  • Tracert原理_traceroute命令工作原理

    Tracert原理_traceroute命令工作原理traceroute原理traceroute通过ICMP“超时”和“端口不可达”两种消息记录所经过路径的路由。 使用“超时”消息记录经过的路由:traceroute程序发送的数据报首部TTL字段由发送端设置成一个8bit字段。每个处理数据报的路由器都需要把TTL的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒,因此TTL最终成为一个跳数计数器,…

    2026年3月7日
    5
  • qaction不显示_QAction类详解:

    qaction不显示_QAction类详解:先贴一段描述 Qt 文档原文 DetailedDesc Inapplicatio toolbar

    2026年3月18日
    3
  • oracle数据库怎么切换实例,oracle切换数据库实例

    oracle数据库怎么切换实例,oracle切换数据库实例1 5 汇总表格完成规划后填写表 1 5 1 A 机 Oracle 基目录 OracleBase A 机 Oracle 主目录 OracleHome A 机 Listener 名称 A 机数据库实例名 A 机数据库实例目录 B 机 Oracle 基目录 OracleBase B 机 Oracle 主目录 Oracle 数据库存储迁移案例分享一 环境及需求简要说明环境为 O

    2026年3月26日
    1
  • 16进制颜色表

    16进制颜色表16 位进制代码颜色效果 FFFFFF FFFFCC FFFF99 FFFF66 FFFF33 FFFF00 FFCCFF FFCCCC FFCC99 FFCC66 FFCC33 FFCC00 FF99FF FF99CC FF9999 FF9966 FF9933 FF9900 FF66FF FF66CC FF6699

    2026年3月20日
    2
  • gtsam 学习十(ISAM2 理论)

    gtsam 学习十(ISAM2 理论)翻译自 iSAM2 IncrementalS 摘要提出了一种新型的贝斯树处理稀疏矩阵 在转化为因子图 可以更好的求解平方根信息和映射问题 文中提出了三个概念使用概率密度项进行矩阵分解介绍如何将矩阵分解转换为贝叶斯数和条件概率密度基于贝叶斯树提供了一种新的系数非线性优化 ISAM2 进行重新排序和重新线性化 避免了批量更新 问题描述文章聚焦与如何用增量实时解决非线性问题 利用增量即新的测量值实时更新估

    2026年3月18日
    1
  • 即梦AI背景修改教程:一键抠图场景融合方法

    即梦AI背景修改教程:一键抠图场景融合方法

    2026年3月12日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号