前情提要
最近在做一个政务系统的项目,有一个表单项能需要用到级联选择器,项目使用的是Vant UI,不管什么框架吧,级联选择器对于数据结构的要求大概是这样的
[
label: 'xxx',
value: 'xxx',
children: [
label: 'xxx',
value: 'xxx',
children: []
]
]
然而我收到的数据来源是一个Excel,它长这样
所以我需要把它变成级联选择器需要的格式,不选择手动录入的原因是:数据太多,洋洋洒洒好几百行,手动录入得累死。
实现方案
通过Node.js读取Excel的内容
之前有过Node.js的经验和环境,所以直接用Node来做。实现过程也非常简单,安装一个叫做node-xlsx的依赖,将Excel解析。
const xlsx = require('node-xlsx');
const sheets = xlsx.parse('./xxx.xlsx');
console.log(JSON.stringify(sheets));
由于Node.js的输出在命令行,Excel的内容又很多,直接打印Log会把缓冲区占满,非常不利于调试,接下来需要通过Chrome浏览器将Node程序的Log展示出来
通过Chrome浏览器展示Node程序的Log
这里参考了Node.js的文档,见:Node.js 调试指南
我用的是Chrome浏览器,方法是:
- 在地址栏输入:
chrome://inspect - 通过inspect命令执行JS脚本:
node inspect index.js - 浏览器会自动弹出Node.js DevTools窗口
- 最终我拿到了Excel的数据
解析数据并格式化
这一块儿没什么好说的,就是找到数据的规律,通过循环将数据整理成需要的格式并输出。
实现起来还是很爽的。而且也省去手动录入的时间和手动录入可能出现的错误。
总结
主要是记录一下通过Chrome的调试工具查看Node.js程序的输出,做的时候查了不少资料,做完之后总结一下,养成好习惯~