好了,我找到了一个非常有据可查的node_module
,名为js-xlsx
问题:如何解析xlsx输出json?
下面是Excel工作表的样子:
的数据
最后,json看起来应该是这样的:
[
{
"id": 1,
"Headline": "Team: Sally Pearson",
"Location": "Austrailia",
"BodyText": "...",
"Media: "..."
},
{
"id": 2,
"Headline": "Team: Rebeca Andrade",
"Location": "Brazil",
"BodyText": "...",
"Media: "..."
}
]
字符串
index.js:
if(typeof require !== 'undefined') {
console.log('hey');
XLSX = require('xlsx');
}
var workbook = XLSX.readFile('./assets/visa.xlsx');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) { /* iterate through sheets */
var worksheet = workbook.Sheets[y];
for (z in worksheet) {
/* all keys that do not begin with "!" correspond to cell addresses */
if(z[0] === '!') continue;
// console.log(y + "!" + z + "=" + JSON.stringify(worksheet[z].v));
}
});
XLSX.writeFile(workbook, 'out.xlsx');
型
8条答案
按热度按时间n53p2ov01#
您还可以使用
字符串
7xllpg7q2#
“Josh Marinacci”答案的改进版本,它将阅读超出Z列(即AA1)。
字符串
yfwxisqw3#
我认为这段代码可以满足你的要求,它将第一行存储为一组标题,然后将其余部分存储在一个数据对象中,你可以将其作为JSON写入磁盘。
字符串
打印出
型
h7appiyu4#
字符串
ibps3vxo5#
下面是Angular 5方法版本,对于那些在接受答案中挣扎于
y
,z
,tt
的人来说,它具有未缩小的语法。用法:parseXlsx().subscribe((data)=> {...})
字符串
ruyhziif6#
只是提高@parijat回答一点。
字符串
r1wp621o7#
我找到了一个更好的方法
字符串
sqougxex8#
下面是我的解决方案(在 typescript 中),使用了一些ramdas帮助器。它支持多个工作表,并返回一个以键作为工作表名称的对象。
字符串