背景:某个项目采用mock模拟数据,客户给了一份Excel,身为前端的我等了一个星期的数据还是没有等到,中间穿插了N个项目。。。故事是这样开始的
- 某一天老板跟我说:“小王啊,我最近实在太忙,这数据实在没有时间处理,你帮忙处理下吧!”
- 我:“这个没有弄过。。。” 心想:“我是一名前端,这不是后端的事吗”
- 老板:“你搜下node插件,有专门处理Excel数据的,很简单的。给你一天时间,客户要得急!!!”
作为一名小前端,业余学过一点node,之前本人参加公司的编程比赛时用过node跑程序,刚好被老板看到了。。。
结局:
'use strict';
let _ = require('lodash');
let xlsxrd = require('node-xlsx');
let excelFilePath = './demo.xlsx';
// 读取excel中所有工作表的数据
let list = xlsxrd.parse(excelFilePath);
// 获取excel中第一个工作表的数据
let data = list[0].data;
let result = [];
// 字段过滤
_.forEach(data.slice(1), (d) => {
result.push({ rank: d[0], name: d[1], info: d[8], platform: d[9] });
});
console.log('原始格式数据:', JSON.stringify(list));
console.log('');
console.log(`${list[0].name}:`, JSON.stringify(result));
代码中用的ES6的语法,引入了一个方法库lodash。这是一个单独demo,很简单的。实际项目中有8个工作表。
运行结果: