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


相关推荐

  • 提供一个免费的CSDN下载账号

    提供一个免费的CSDN下载账号

    2021年11月16日
    40
  • Data URI scheme「建议收藏」

    Data URI scheme「建议收藏」什么是DataURISchemedataURIscheme允许我们使用内联(inline-code)的方式在网页中包含数据,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。HTML中网页图片一般是https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=162360699,3…

    2022年10月19日
    2
  • golang2021激活码【永久激活】[通俗易懂]

    (golang2021激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    768
  • 常见的几种RuntimeException

    常见的几种RuntimeException

    2021年9月1日
    71
  • mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]

    mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]信息与通信工程学院阵列信号处理实验报告(自适应波束形成Matlab仿真)…同时研究了窄带信号的自适应波束形成的经典算法。研究并仿真了基于最小均方误差准则的LMS算法、RLS算法和MVDR自适应算法,并且做了一些比较。关键词:数字……MVDR算法matlab程序_计算机软件及应用_IT/计算机_专业资料。clc…根据期望信号的导向矢量,可以采取MVDR算法…

    2022年6月22日
    27
  • python的三种取整方式_python取整函数-取整函数,PYTHON[通俗易懂]

    python的三种取整方式_python取整函数-取整函数,PYTHON[通俗易懂]本教程分享:《python取整函数》,python有什么办法使得int按照”四舍五入”的方式取…由于小数取整会采用比较暴力的截断方式,即向下取整,所以要想使得int()按照“四舍五入”的方式取整,可以采用如下方法:5.4“四舍五入”结果为:5,int(5.4+0.5)==55.6“四舍五入”结果为:6,int(5.6+0.5)==6python为什么算除法自动取整了。如图…

    2025年7月15日
    5

发表回复

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

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