微信小程序云函数使用node-xlsx

微信小程序云函数使用 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)
    }
  })
}

参考文档

node-xlsx 文档

换取真实链接 getTempFileURL


如果该文章能帮到你的话 麻烦点个赞 谢谢啦~

你可能感兴趣的:(微信小程序,微信小程序,前端,小程序)