当前位置:   article > 正文

微信小程序云开发数据导出为Excel下载并打开_小程序将数据导成excel表格

小程序将数据导成excel表格

1.创建云函数

2.安装node-xlsx类库(node类库)

打开终端安装node-xlsx类库并重现上传部署

npm install node-xlsx

3.把数据存在excel里面,把excel存在云存储里并返回对应的云文件地址

前端传数据到云函数,云函数接收数据数组,添加到excel中

  1. async function get_excel(data) {
  2. let today_order = data;
  3. let dataCVS = `order-${Math.floor(Math.random()*1000000000)}.xlsx` //excel文件名
  4. let alldata = [];
  5. let row = ['售点名称', '订单号','商品名称','购买数量', '顾客姓名', '联系方式']; //excel首行字段
  6. alldata.push(row);
  7. //遍历添加数组,和上面的首行字段要一一对应
  8. for(let i=0; i<today_order.length; i++){
  9.   let arr = [];
  10.   arr.push(today_order[key].point_name);
  11.   arr.push(today_order[i]._id);
  12.   arr.push(today_order[i].goods_name);
  13.   arr.push(today_order[i].goods_count);
  14.   arr.push(today_order[i].username);
  15.   arr.push(today_order[i].phone);
  16.   alldata.push(arr)
  17. }
  18. var buffer = await xlsx.build([{  
  19.   name: "mySheetName",
  20.   data: alldata
  21.   }]);
  22. return await cloud.uploadFile({
  23.   cloudPath: dataCVS,
  24.   fileContent: buffer,
  25. }).then(res=>{
  26.   return {
  27.     code: 200,
  28.     data: res
  29.   }
  30. })
  31. }

4.拿到地址后下载excel文件

  1. wx.showLoading({
  2.        success: res => {
  3.          let today_order = this.data.today_order
  4.          wx.cloud.callFunction({
  5.            name: 'index',
  6.            data: {
  7.              action: 'get_excel',
  8.              data: today_order
  9.           }
  10.         }).then(res => {
  11.            wx.hideLoading()
  12.            const fileID = res.result.data.data.fileID
  13.            wx.cloud.downloadFile({
  14.              fileID: fileID,
  15.              success: res => {
  16.                const filePath = res.tempFilePath
  17.                wx.showToast({
  18.                  title: '文件下载成功',
  19.                  icon: "none",
  20.                  duration: 1500
  21.               })
  22.                wx.cloud.deleteFile({
  23.                  fileList: [fileID],
  24.                  success(res) {
  25.                    console.log('删除文件成功')
  26.                 },
  27.                  fail(err) {
  28.                    console.log(err)
  29.                 }
  30.               })
  31.                setTimeout(() => {
  32.                  wx.openDocument({
  33.                    filePath: filePath,
  34.                    success: function (res) {
  35.                      console.log('打开文档成功')
  36.                   }
  37.                 })
  38.               }, 1000)
  39.             },
  40.              fail: err => {
  41.                console.log("文件下载失败", err);
  42.             }
  43.           })
  44.         })
  45.       }
  46.     })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/571043
推荐阅读
  

闽ICP备14008679号