收藏
回答

excel如何转换成数据库文件导入?

一个excel文件是一条记录里的一个字段。

grade:[{id:1,name:xx,cj:100"},{id:2,name:yy,cj:100}]

回答关注问题邀请回答
收藏

1 个回答

  • Vawter
    Vawter
    2020-09-16

    一个sheet,是一个字段?

    可以用一下node-xlsx这个包

    下面是云函数代码:

    const cloud = require('wx-server-sdk')
    cloud.init()
    var xlsx = require('node-xlsx');
    const db = cloud.database()
    
    
    exports.main = async(event, context) => {
      let {
        fileID
      } = event
      //1,通过fileID下载云存储里的excel文件
      //这是我原来的代码,
      //可以直接小程序用filemanager读取excel为buffer传递到云函数
      const res = await cloud.downloadFile({
        fileID: fileID,
      })
      const buffer = res.fileContent
    
    
      const all_excel_data = [] //用来存储所有的添加数据操作
      //2,解析excel文件里的数据
      var sheets = xlsx.parse(buffer); //获取到所有sheets
      sheets.forEach(function(sheet) {
        console.log(sheet['name']);
        for (var rowId in sheet['data']) {
          //console.log(rowId);
          var row = sheet['data'][rowId]; //第几行数据
          if (rowId > 0 && row[0]) { //第一行是表格标题,所以我们要从第2行开始读
            //3,把解析到的数据存到excelList数据表里
            all_excel_data.push({
              category1:row[0],//分类一
              category2:row[1],//分类二
              name: row[2], //姓名
              price: Number(row[3].toFixed(0)), //单价
              number: row[4], //数量
              amount: Number(row[5].toFixed(0)), //总价
              xiaoqi:row[6],//有效期
              beizhu:row[7],//备注
              detail:row[8],//套装明细
              create_time:row[9]//排序
            })
          }
        }
      });
      // 一起添加所有数据
      var result=await db.collection('goods').add({data:all_excel_data}).then(res=>{
        return res
      }).catch(err=>{return err})
      return result
    }
    


    有帮助的话请给我点个赞,谢谢。

    十分有帮助的话,可以帮我上一篇文章也点个赞,十分谢谢。

    2020-09-16
    有用 1
    回复
登录 后发表内容
问题标签