收藏
回答

【微信小程序】【文件操作】如何把数组写入文件,并正确的在云函数里读出?

如题,

db_project50({
    data:callback.data,
    success:function(e){
      console.log(e)
      var ntime = utils.formatTime(new Date()).toString()
      let fsm = wx.getFileSystemManager();
      fsm.writeFile({
        filePath: wx.env.USER_DATA_PATH + '/tmp'+app.globalData.openid+ntime,
        data:wx.arrayBufferToBase64(e.data),
        encoding: 'base64',
        success:function(re){
          console.info(re)
          wx.cloud.uploadFile({
            cloudPath: 'temp/tmp'+app.globalData.openid+ntime,
            filePath:wx.env.USER_DATA_PATH + '/tmp'+app.globalData.openid+ntime,
            success:function(res){
              console.log(res.fileID)
              wx.cloud.callFunction({
                name:"dbExcelall",
                data:{
                  fileID:res.fileID,
                  ntime:ntime,
                  openid:app.globalData.openid
                },
                success:function(res){
                  callback.success(res)
                },
                fail:function(err){
                  callback.fail(err)
                }
              })
            },
            fail:function(err){
              console.error(err)
            }
          })
          
        },
        fail:function(err){
          console.error(err)
        }
      })

e.data里含着一组从数据里获取的数据,是我用循环聚合的方式弄出来的,800+吧,

本来想直接写入云端node-xlsx,弄个xlsx文件并且弹出来给客户

但是提示我数据超出大小(在开发工具里没事,手机和真机都不行)

从社区里查了查,说可以写成文件上传到云端再传入fileID下载

所以如何正确的写入数组数据,并且正确的读出

求大佬指点

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

2 个回答

  • wang li
    wang li
    2020-08-11
    xlsx800+就不能写入了吗
    2020-08-11
    有用
    回复 3
    • YYsj~
      YYsj~
      2020-08-11
      能写入,但是不能传入云函数,真机测试会报错数据超出大小
      2020-08-11
      回复
    • wang li
      wang li
      2020-08-11回复YYsj~
      直接云函数读取数据库再导出?
      2020-08-11
      回复
    • YYsj~
      YYsj~
      2020-08-13回复wang li
      我现在就是这么搞的,原来数据库一个字段能存几千个数据都没事
      2020-08-13
      回复
  • Admin²⁰²¹
    Admin²⁰²¹
    2020-08-10

    直接分批写到云数据库里不是更方便

    2020-08-10
    有用
    回复 5
    • YYsj~
      YYsj~
      2020-08-10
      我要生成xlsx文件,问题是这个node-xlsx的操作我只找了这一个,没办法分批写入
      2020-08-10
      回复
    • YYsj~
      YYsj~
      2020-08-10
      数据就是在数据库里的,我还是循环拿下来的,要是有分批写入xlsx的方法我就不用这么复杂了
      2020-08-10
      回复
    • Admin²⁰²¹
      Admin²⁰²¹
      2020-08-10回复YYsj~
      生成xlsx跟你标题说的需求是2个不矛盾的啊,比标题的需求是把800+的数组能在云函数里读出,你生成xslx后还可以继续把数据分批写入到云数据库里,云函数还是能正常读出
      2020-08-10
      回复
    • Admin²⁰²¹
      Admin²⁰²¹
      2020-08-10回复YYsj~
      所以你的需求是把800+数组写入到xlsx里面吗?而不是要让云函数读出来?
      2020-08-10
      回复
    • YYsj~
      YYsj~
      2020-08-10回复Admin²⁰²¹
      对对对,要是有这个方法说明我就不用这么蛋疼了,一边循环找数据一边写就可以了
      2020-08-10
      回复
登录 后发表内容
问题标签