1.5.3 • Published 5 years ago
excel-tobe-json v1.5.3
语法规则
语法规则:
带[],如 arr_index[]
不带[],如 title_image
#require(sheet),可以引入其他sheet数据
带[]:数组,push原则,如有指定index,如index1,则是赋值(替换)原则
- 例如 demo 的 arr_table_cell 字段
不带[]:对象字段,赋值(替换)原则。
- 例如 demo 的 title_image 字段
#require(sheet):该字段(可能也没有)的value来源其他sheet。
- #号前可以有字段,引入的sheet大对象为该属性的value。如props#require(2)
示例
excel demo:
sheet1
filename | cn_lang | en_lang |
lang | cn | en |
title_image | body_cn_m.png | body_en_m.jpg |
apply_condition_c0.c | 1,招募条件的内容 | 1,condition |
apply_condition_c1.c | 2,招募条件的内容 | 2,condition |
arr_index0 | 1,test数组合并 | 1,test arr |
arr_index1 | 2,test数组合并 | 2,test arr |
arr_table_cell[] | 1,数组,合并单元格 | 1,merge table cell |
2,数组,合并单元格 | 2,merge table cell | |
3,数组,合并单元格 | 3,merge table cell | |
arr_push[] | 1,数组 push | 1,arr push |
arr_push[] | 2,数组 push | 2, arr push |
arr_table_cell[] | 4,数组,push 单元格 | 4,arr,push merge table cell |
arr_table_cell1.c.a0.b0 | 深度结构 | deep |
title_image | body_cn_m.jgp | body_en_m.jpg |
code_status#require(2) |
sheet2
200 | 成功 | success |
403 | 失效 | Invalid |
will to be
[
{
"filename": "cn_lang",
"lang": "cn",
"title_image": "body_cn_m.jgp",
"apply_condition_c": [
{
"c": "1,招募条件的内容"
},
{
"c": "2,招募条件的内容"
}
],
"arr_index": [
"1,test数组合并",
"2,test数组合并"
],
"arr_table_cell": [
"1,数组,合并单元格",
{
"c": {
"a": [
{
"b": [
"深度结构"
]
}
]
}
},
"3,数组,合并单元格",
"4,数组,push 单元格"
],
"arr_push": [
"1,数组 push",
"2,数组 push"
],
"code_status": {
"200": "成功",
"403": "失效"
}
},
{
"filename": "en_lang",
"lang": "en",
"title_image": "body_en_m.jpg",
"apply_condition_c": [
{
"c": "1,condition"
},
{
"c": "2,condition"
}
],
"arr_index": [
"1,test arr",
"2,test arr"
],
"arr_table_cell": [
"1,merge table cell",
{
"c": {
"a": [
{
"b": [
"deep"
]
}
]
}
},
"3,merge table cell",
"4,arr,push merge table cell"
],
"arr_push": [
"1,arr push",
"2, arr push"
],
"code_status": {
"200": "success",
"403": "Invalid"
}
}
]
安装
npm安装:
- npm install excel-tobe-json --save
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
excelPathName | 是 | string | excel路径 |
sheet | 否 | number | 读取表格哪个sheet数据 |
isColOriented | 否 | string | 默认true按列处理,按行请使用false |
dirOutput | 否 | string | 输出的json文件路径(此时回调不会得到json数据)。如无,则回调第二个参数是json数据。 |
示例
// excelToJson入口方法。
var convertExcel = require('excel-tobe-json').excelToJson;
convertExcel(excelPathName, {isColOriented: true, dirOutput: 'excel.json'}, function (err, excelDatas) {
if (err) {
console.log(err)
}else{
console.log(JSON.stringify(excelDatas))
}
})
插件扩展
考虑到很多在线excel表格,excel-tobe-json开放了扩展支持:
- extendOnlineExcel 此方法用来扩展第三方在线excel表格。接收一个数组作为参数. 第一项为域名(如docs.google.com),第二项为handle方法(此方法也接收2个参数,第一个是在线url,第二个是个方法,当你处理好在线数据为原始结构数组,调用此方法并传入你的原始数据即可)。
谷歌在线表格扩展demo:
https://github.com/diyao/google-excel/blob/master/lib/google-excel.js
var excelTobeJson = require('excel-tobe-json');
// 谷歌excel扩展导出的一个数组,第一个域名,第二项handle函数。具体看地址源码
// 如此,excel-tobe-json可直接处理谷歌在线表格。
excelTobeJson.extendOnlineExcel(require('google-excel'))