微信小程序 -- 数据库数据excel文件批量导入

一、excel文件批量导入数据到数据库

1.创建node.js函数upload,点击upload右键外部终端中安装类库

npm install node-xlsx

2.云函数代码

const cloud = require('wx-server-sdk')

cloud.init({
  env:'云环境'
})
var xlsx = require('node-xlsx');
const db = cloud.database()

exports.main = async(event, context) => {
  let fileID=event.fileID
  //1,通过fileID下载云存储里的excel文件
  const res = await cloud.downloadFile({
    fileID: fileID,
  })
  console.log('下载的文件',res);
  const file_xlsx = res.fileContent

  var files = xlsx.parse(file_xlsx);
 console.log('获得内容表格数组',files[0].data); 

 function addfile(i){
  db.collection("product_new").add({
      data:{
        product_name: files[0].data[i][0], //商品名
        product_classify: files[0].data[i][1], //分类
        product_price: files[0].data[i][2], //价格
        product_size: files[0].data[i][3], //规格
        bank:files[0].data[i][4], //品牌
        festival:files[0].data[i][5], //节日
        product_stock:files[0].data[i][6], //库存量
        product_seles:files[0].data[i][7], //销售量
        product_origin:files[0].data[i][8], //产地
        product_store:files[0].data[i][9], //存储方式
        product_warranty:files[0].data[i][10], //保质期
        openid:event.openid,
        product_time:event.times,
        
      }
      }).then(res=>{
          i++
          if(i==files[0].data.length){
          //循环结束删除上传的文件不占用云存储
              cloud.deleteFile({
                  fileList:[fileID],
                  success(res){
                      return  console.log(res,'删除文件')
                  },
                })    
          }else{
              addfile(i)
          }
      })
}
addfile(1)
}

js代码

// 上传表格点击事件
chooseExcel(){
  var that=this
  wx.chooseMessageFile({
    count: 1,
    type:'file',
    success(res){
      var path=res.tempFiles[0].path;
      console.log("选择excel文件成功",path)
      that.uploadExcel(path);
    }
  })
},

// 上传表格
uploadExcel(path){
var that=this
wx.cloud.uploadFile({
  cloudPath:new Date().getTime()+'.xls',
  filePath:path, //文件路径
  success:res=>{
    console.log("上传成功",res.fileID)
    that.jiexi(res.fileID)
  },
  fail:err=>{
    console.log("上传失败",err)
  }
})
},

// 解析并上传数据库
jiexi(fileId){
wx.cloud.callFunction({
  name:"upload",
  data:{
    fileID:fileId,
    openid:this.data.openid,
    times:this.data.times
  },
  success(res){
    console.log("解析并上传成功",res)
    wx.showModal({
      title: '温馨提示', 
      content: '商品信息上传成功',
      success: function (res) {
        if (res.confirm) {//这里是点击了确定以后
          console.log('用户点击确定')
        } else {//这里是点击了取消以后
          console.log('用户点击取消')
        }
      }     
    })
  },
  fail(res){
    console.log("解析失败",res)
  }
})
},

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值