Nodejs如何让excel 表达复杂json格式,并导出json
Nodejs如何让excel 表达复杂json格式,并导出json
xlsx2json
项目地址 xlsx2json master
作用
- 让excel表达复杂的json格式
- 将excel转成json
示例1 test.xlsx
id | desc | flag | otherid#[] | 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,
"otherid": [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,
"otherid": [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 字符串
- object 对象 {a:1,b:false} // 对象内暂时不能有数组,也不能对象嵌套对象,此功能正在加入。
- number-array 数字数组
- boolean-array 布尔数组
- string-array 字符串数组
- object-array 对象数组
表头规则
- 字段是基本数据类型(string,number,boolean)时候,不需要特殊设置。
- 字段是基本类型数组:此列表头的命名形式
列名#[]
。 - 字段是对象:此列表头的命名形式
列名#{}
。 - 字段是对象数组:此列表头的命名形式
列名#[{}]
。
Nodejs 如何让 excel 表达复杂 json 格式,并导出 json
xlsx2json
项目地址: xlsx2json master
作用
- 让 Excel 表达复杂的 JSON 格式
- 将 Excel 转换成 JSON
示例 1: test.xlsx
| id | desc | flag | otherid#[] | words#[] | map#[] | data#{a:b} | hero#[{id:level}] |
|------|------------|------|------------|--------------|--------|------------|-------------------|
| 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 |
输出 JSON
[
{
"id": 123,
"desc": "description",
"flag": true,
"otherid": [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,
"otherid": [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: 字符串类型
- Object: 对象类型 (当前不支持嵌套对象)
- Number-array: 数字数组
- Boolean-array: 布尔数组
- String-array: 字符串数组
- Object-array: 对象数组
表头规则
- 如果字段是基本数据类型(如字符串、数字、布尔值),则不需要特殊设置。
- 如果字段是基本类型的数组,表头应命名为
<列名>#[]
。 - 如果字段是对象,表头应命名为
<列名>#{}
。 - 如果字段是对象数组,表头应命名为
<列名>#[{}]
。
示例代码
以下是使用 xlsx2json
库将 Excel 文件转换为 JSON 的简单示例:
const xlsx2json = require('xlsx2json');
// 读取 Excel 文件并转换为 JSON
xlsx2json('./test.xlsx')
.then(jsonData => {
console.log(JSON.stringify(jsonData, null, 2));
})
.catch(err => {
console.error('Error converting Excel to JSON:', err);
});
解释
xlsx2json
是一个用于将 Excel 文件转换为 JSON 格式的库。- 通过调用
xlsx2json('./test.xlsx')
方法,可以读取指定路径的 Excel 文件并将其转换为 JSON 对象。 - 最终结果是一个包含多个对象的数组,每个对象代表一行数据,并且数据类型根据表头规则自动解析。
这样,你就可以轻松地将复杂的 Excel 数据转换为易于处理的 JSON 格式。
熟悉markdown童鞋,能指导下table怎么写么。我那里不知道为什么空出来那么大一块空白??
老G ?
Table 问题… 编译出来很多的 <p></p>
, 不清楚具体原因,
不过原文用了 HTML 标签而不是 Markdown 的格式… 是有点怪,
我到晚上看下, 另外表格布局也要加强的 https://github.com/cnodejs/nodeclub/issues/319
我用github那种方式整table在这里显示不对,就看发帖页面右面那个 “Markdown 文档”的连接 看得table的用法,table还有别的写法么?
语法应该没什么问题了…应该就是解析器生成问题了…
对了…那个是标准md文档…table 得用 标签才行…那写起来多累啊… 其实这里支持GFM 的格式,表格 可以这样优雅的写
|表头1|表头2|
|:--|:--|
|内容1|内容2|
表头1 | 表头2 |
---|---|
内容1 | 内容2 |
为了实现将Excel文件转换为复杂的JSON格式并导出JSON的功能,我们可以使用xlsx2json
工具。以下是具体的步骤和示例代码来说明如何实现这一目标。
步骤
-
安装依赖:首先需要安装
xlsx2json
库。npm install xlsx2json
-
准备Excel文件:确保你的Excel文件具有正确的表头结构,以支持不同类型的数据,包括基础数据类型、数组和对象等。
-
编写转换脚本:使用
xlsx2json
将Excel文件中的数据转换为JSON格式。
示例代码
const xlsx2json = require('xlsx2json');
// 转换Excel文件到JSON
xlsx2json('test.xlsx', (err, json) => {
if (err) {
console.error(err);
return;
}
console.log(JSON.stringify(json, null, 2));
});
输出示例
假设test.xlsx
文件内容如题目所示,则运行上述脚本后,输出应如下:
[
{
"id": 123,
"desc": "description",
"flag": true,
"otherid": [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,
"otherid": [3, 5, 8],
"words": ["shit", "my god"],
"map": [false, true],
"data": {
"a": 11,
"b": 22
},
"hero": [
{"id": 9, "level": 38},
{"id": 17, "level": 100}
]
}
]
解释
- 表头规则:
其他id#[]
表示这是一个字符串数组。words#[]
同样表示一个字符串数组。map#[]
表示一个布尔数组。data#{}
表示一个对象。hero#[{}]
表示一个对象数组。
通过这些规则,xlsx2json
可以正确解析Excel中的数据,并将其转换为相应的JSON格式。
以上就是如何使用xlsx2json
将Excel文件中的复杂数据转换为JSON格式的基本流程和示例代码。