背景
当我们在做需求的时候,无可厚非地都会碰上产品经理突然丢一个 Excel 文件给你,让你去把它当成假数据或者可选选项的情况,这时我们就要将 Excel 转成 Json 格式才能供我们使用,文件数据少一点地我们或许会选择直接手动,可要是有几十上百行的数据呢,比如下面这种👇
依赖库
该功能的实现主要是依赖SheetJS,SheetJS 是目前 Github 上 star 数量最多的处理 Excel 的库,支持解析多种格式表格 XLSX / XLSM / XLSB / XLS / CSV,解析采用纯 js 实现,写入需要依赖 nodejs 实现生成写入Excel,可以生成子表Excel,功能强大
官方 Github 地址:github.com/rockboom/Sh…
快速开始
1、初始化
创建一个文件夹 excel-to-josn
npm init -y
2、安装依赖
npm install xlsx
3、开始(以上述国际化表为例)
1、新建 read.js,同目录下新建一个 file 文件夹,用来存放 excel 文件
├─ file
│ ├─ language.xlsx
├─ package-lock.json
├─ package.json
└─ read.js
2、read.js 引用依赖,读取 excel 文件
const xlsx = require('xlsx')
// 读取 excel 文件
const workbook = xlsx.readFile('./file/language.xlsx')
// 第一个 sheet 下的数据 Sheets['sheet名']
const res = workbook.Sheets['Sheet1']
3、使用 SheetJS 转 json
const data = xlsx.utils.sheet_to_json(res)
瞬间就拿到我们想要的样子了😄。那要是改下字段名,你可以这样
const text = data.map(item => {
return {
en_name: item['语言(英语)'],
zn_name: item['语言(中文)'],
code: item['代码']
}
})
快拿去试试把
完整代码
const xlsx = require('xlsx')
const workbook = xlsx.readFile('./file/language.xlsx').Sheets['Sheet1']
var data = xlsx.utils.sheet_to_json(workbook)
const text = data.map(item => {
return {
en_name: item['语言(英语)'],
zn_name: item['语言(中文)'],
code: item['代码']}
})
console.log(text)