Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

node解析Excel,将表格数据制成json,针对合并的单元格该如何实现?

$
0
0

这是我用的包js-xlsx

这是测试表格: 1.png

这是最后需要的json格式:

[ { “Nuber”: 1, “Department”: “part1”, “Unit”: [“check”,“second”,“cable”], “BeginTime”: “1/7:00”, “EndTime”: “2/20:00”, “Worker”: [“Lucy”,“Jussa”,“Peter”] }, { “Nuber”: 2, “Department”: “part2”, “Unit”: “check”, “BeginTime”: “1/7:00”, “EndTime”: “1/20:00”, “Worker”: “Yu” } ]

问题:如何实现将Unit和Worker中的内容组成一个数组并塞进Number为1的json中?

这是目前的代码:

var XLSX = require(‘xlsx’); var workbook = XLSX.readFile(‘测试.xlsx’); var sheet_name_list = workbook.SheetNames; sheet_name_list.forEach(function(y) { var worksheet = workbook.Sheets[y]; if (y == ‘Sheet1’) { var headers = {}; var data = []; //包中定义:z就是单元格的编号,如:A1,B2 for (z in worksheet) { if (z[0] === ‘!’) continue; //(0,1)列col的字母编号:A-Z, (1)行数row:1、2、3… var col = z.substring(0, 1); var row = parseInt(z.substring(1)); var value = worksheet[z].v; //保存中文字段名 if (row == 4) { headers[col] = value; continue; }

		if (!data[row]) data[row] = {};
		data[row][headers[col]] = value;
	}
	data.shift();
	data.shift();
	console.log(data);

} else { console.log(false) }

});

目前代码实现结果:

2.png


Viewing all articles
Browse latest Browse all 14821

Trending Articles