示范excel的demo
先导入node-xlsx
npm install node-xlsx
const xlsx = require("node-xlsx")
读取excel的数据并进行数据转化
router.get("/commit", async (ctx, next) => {
const m = xlsx.parse('./commit/2.xlsx')
let table = new Array()
m.forEach(item => {
for(let i = 1; i < item['data'].length; i++) {
let arr = new Array()
for(let o = 9; o < item['data'][i].length; o++) {
const t = item['data'][i][o] ? item['data'][i][o] + '--' : item['data'][i][o]
arr.push(t)
}
table[i - 1] = {
"dishes": item['data'][i][0],
"introduce": item['data'][i][1],
"ingredients": item['data'][i][2],
"label": item['data'][i][3],
"tips": item['data'][i][4],
"hor": item['data'][i][5],
"way": item['data'][i][6],
"time": item['data'][i][7],
"flavor": item['data'][i][8],
"steps": arr
}
}
})
ctx.body = util.success(null, "新增成功")
})
目前这部分steps存入数据库,是用’–,'这种符号去隔开,到时候查出来,组成数组,供前端使用
数据转化并存入mysql
router.get("/commit", async (ctx, next) => {
const m = xlsx.parse('./commit/2.xlsx')
m.forEach(item => {
for(let i = 1; i < item['data'].length; i++) {
let arr = new Array()
for(let o = 9; o < item['data'][i].length; o++) {
const t = item['data'][i][o] ? item['data'][i][o] + '--' : item['data'][i][o]
arr.push(t)
}
// 写入mysql
const sql = `
insert into daemon_food
(dishes, introduce, ingredients, label, tips, hor, way, time, flavor, steps)
values
("${ item['data'][i][0] ?? null }",
"${ item['data'][i][1] ?? null }",
"${ item['data'][i][2] ?? null }",
"${ item['data'][i][3] ?? null }",
"${ item['data'][i][4] ?? null }",
"${ item['data'][i][5] ?? null }",
"${ item['data'][i][6] ?? null }",
"${ item['data'][i][7] ?? null }",
"${ item['data'][i][8] ?? null }",
"${ arr ?? null }")
`
query(sql)
}
})
ctx.body = util.success("", "新增成功")
})
本次数据一共14万多的数据,循环导入,跑了差不多3分钟,自己研究的写法,如果有好的办法,烦请大佬教教我。
最后
公众号:
小何成长
,佛系更文,都是自己曾经踩过的坑或者是学到的东西有兴趣的小伙伴欢迎关注我哦,我是:
何小玍
。大家一起进步鸭