Excel数据读取与格式化

647 阅读2分钟

前情提要

最近在做一个政务系统的项目,有一个表单项能需要用到级联选择器,项目使用的是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的数据 image.png

解析数据并格式化

这一块儿没什么好说的,就是找到数据的规律,通过循环将数据整理成需要的格式并输出。
实现起来还是很爽的。而且也省去手动录入的时间和手动录入可能出现的错误。

总结

主要是记录一下通过Chrome的调试工具查看Node.js程序的输出,做的时候查了不少资料,做完之后总结一下,养成好习惯~