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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 精华篇:数组指针

    精华篇:数组指针一.数组指针1.定义:数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。例:int(*p)[10];p即为指向数组的指针,又称数组指针。2.特性:…

    2022年7月3日
    25
  • input file 只读实现

    input file 只读实现//禁止粘贴,禁止直接写路径  

    2022年7月25日
    9
  • Java实现单例模式的9种方法

    Java实现单例模式的9种方法人工智能,零基础入门!http://www.captainbed.net/inner一.什么是单例模式因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。二.单例模式的特点1、单例模式只能有一个实例。2、单例类必须创建自己的唯一实例。3、单例类必须向其他对象提供这一实例。三.单例模式VS静态类在知道了什么是…

    2022年7月8日
    18
  • linux pycharm2021年激活码刚出【中文破解版】

    (linux pycharm2021年激活码刚出)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    280
  • ubuntu卸载cuda10.1

    ubuntu卸载cuda10.1cd/usr/local/cuda/binsudo./cuda-uninstaller

    2022年5月27日
    26
  • [33]python Web 框架:Tornado

    [33]python Web 框架:Tornado1.TornadoTornado:python编写的web服务器兼web应用框架1.1.Tornado的优势轻量级web框架异步非阻塞IO处理方式出色的抗负载能力优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题WSGI全栈替代产品,推荐同时使用其web框架和HTTP服务器1.2.TornadoVSDjang…

    2022年6月1日
    39

发表回复

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

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