答题小程序中,如何将数据库里的排行榜数据导出为excel
发布于 3 年前 作者 leigong 4245 次浏览 来自 分享

在答题小程序中,如何将数据库里的排行榜数据导出为excel?

需要借助第三方工具包,没错,就是node-xlsx了。

node-xlsx不仅可以解析Excel文件从中取出数据,还能将数据生成Excel文件,因此我们可以将云数据库里面的数据取出来之后保存为Excel文件,然后再将保存的Excel文件上传到云存储。


1、安装node-xlsx

npm install node-xlsx


2、引入node-xlsx

const xlsx = require('node-xlsx');


3、查询数据

const dataList = await db.collection("rank").where({ score:_.gt(0) }).orderBy('score', 'desc').limit(100).get()


4、处理数据并导出为excel

const data = dataList.data

let sheet = []

let title = ['排名','姓名','支部','答题次数','累计总分']

await sheet.push(title)

for(let rowIndex in data){

let rowcontent = []

rowcontent.push(data[rowIndex].rank)

rowcontent.push(data[rowIndex].name)

rowcontent.push(data[rowIndex].dept)

rowcontent.push(data[rowIndex].num)

rowcontent.push(data[rowIndex].score)

await sheet.push(rowcontent)

}

const buffer = await xlsx.build([{name: "成绩排行榜", data: sheet}])


5、在云存储生成excel文档

await cloud.uploadFile({ cloudPath: '成绩排行榜.xlsx', fileContent: buffer, })


6、下载到本地

回到顶部