超简单的node脚本,将xlsx文件转化为json

开发场景,在一个官网中,官网的设计非常简单,就是一个纯静态的页面,全网站仅一个地方调一下接口,发一下用户填写的信息到运营同学的邮箱,这些数据不会记录在数据库,我需要做一个这样的下拉框。

超简单的node脚本,将xlsx文件转化为json_第1张图片

但后端同学表示,数据库里面没有存这个数据,而且他们存这个数据也没有什么用。

于是产品给了一个国家的列表:

超简单的node脚本,将xlsx文件转化为json_第2张图片

要怎么把这个文件里面的内容转成我想要的数据格式呢。

超简单的node脚本,将xlsx文件转化为json_第3张图片

偷懒的办法,让后端同学写一个脚本帮我们转化。

但求人不如求己,既然后端同学可以写脚本帮我们转,我们自己也可以写个脚本来转化啊。

想到了nodejs,我对nodejs的api并不熟悉,但是读文件写文件啥的,还是有耳闻。

代码超级简单,20号代码直接搞定。

创建一个空文件夹,里面放一个index.js(文件名不重要,你想放什么都可以),统计目录要转化的文件phone.xlsx

1.index.js

2.phone.xlsx (要转化的文件)

// 引入xlsx库
var fs = require('fs')
var XLSX = require('xlsx')

// 读取xlsx文件
var workbook = XLSX.readFile('./phone.xlsx')

// 获取xlsx文件中的第一张表
var sheet_name_list = workbook.SheetNames
var worksheet = workbook.Sheets[sheet_name_list[0]]

// 使用xlsx库的工具将表转化为JSON对象数组
var jsonArray = XLSX.utils.sheet_to_json(worksheet)
// 将JSON对象数组转化为字符串
var jsonStr = JSON.stringify(jsonArray, null, 2)
// 打印结果
console.log(jsonArray)
// 将字符串写入到json文件
fs.writeFile('output.json', jsonStr, (err) => {
  if (err) throw err
  console.log('Data written to file')
})

然后在该文件夹下面运行以下命令

node index.js

然后你会发现,文件夹下面多出来好几个文件,其他的一些依赖我们不用管,这个output.json 正式我们 想要的

超简单的node脚本,将xlsx文件转化为json_第4张图片

将这个文件拷贝到自己项目就可以用啦

你可能感兴趣的:(json,javascript,开发语言)