微信小程序云函数使用 node-xlsx
一、安装 node-xlsx
在云函数文件夹中打开终端 运行:
npm install node-xlsx --save
二、引入 node-xlsx
在云函数中引入 node-xlsx
const xlsx = require('node-xlsx')
三、云函数导出简单的表格
exportExcel
云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
// 先手写一段数据 这里可以换成数据库的数据
let data = [
{ name: 'zs', age: 18, sex: 1 },
{ name: 'ls', age: 19, sex: 1 },
{ name: 'ww', age: 20, sex: 0 },
]
// 定义一个数组用于存储数据
let alldata = []
let row = ['姓名', '年龄', '性别'] // 表属性
alldata.push(row)
// 将数据添加到alldata中
for(let key in data) {
let arr = []
arr.push(data[key].name)
arr.push(data[key].age)
arr.push(data[key].sex)
alldata.push(arr)
}
// 将数据写入excel里
var buffer = await xlsx.build([{
name: "mySheetName",
data: alldata
}])
// 将excel文件保存到云存储 然后将结果return回前端
return await cloud.uploadFile({
cloudPath: 'test.xlsx', // 文件名
fileContent: buffer, // excel二进制文件
})
}
四、前端拿到文件路径
调用上面的 exportExcel
云函数,拿到 excel二进制文件,然后调用wx.cloud.getTempFileURL
换取临时链接
// 调用云函数
exportOrderList() {
wx.cloud.callFunction({
name: 'exportExcel'
}).then(res => { // 导出excel
this.getFileUrl(res.result.data.fileID)
})
},
// 获取云存储文件下载地址
getFileUrl(fileID) {
wx.cloud.getTempFileURL({
fileList: [fileID],
success: res => {
console.log("文件下载链接", res.fileList[0].tempFileURL)
}
})
}
参考文档
如果该文章能帮到你的话 麻烦点个赞 谢谢啦~