如题,
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下载
所以如何正确的写入数组数据,并且正确的读出
求大佬指点
直接分批写到云数据库里不是更方便
let row = ['合同编号','身份证','姓名','手机号','城镇','状态','机器型号']
alldata.push(row);
for (let key in res) {
let arr = [];
arr.push(res[key].no);
arr.push(res[key].id);
arr.push(res[key].name);
arr.push(res[key].phone);
arr.push(res[key].countrys);
arr.push(stepsArr[res[key].steps]);
arr.push(res[key].mtype);
alldata.push(arr)
}
let dataCVS = event.ntime+".xlsx"
var buf = await xlsx.build([{name:"mysheet",data:alldata}])
return await cloud.uploadFile({
cloudPath:"xlsx/list/"+dataCVS,
fileContent:buf
})