LukeDev2K
LukeDev2K
  • 发布:2021-08-01 13:35
  • 更新:2021-09-22 23:10
  • 阅读:478

云函数阿里云环境生成excel有什么方案吗?

分类:uniCloud

想通过云函数导出excel数据,目前插件市场找到的都只是适合腾讯云环境的,有支持阿里云的方案吗,求请教

2021-08-01 13:35 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

应该是能通用的

  • LukeDev2K (作者)

    老哥你好,我现在也是遇到了跟下面评论的人一样的问题,还是没有解决。。。。

    https://ext.dcloud.net.cn/plugin?id=1942

    2021-08-02 15:57

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

稍微调整下就可以了,我联系作者改一下

'use strict';  

var xlsx = require('node-xlsx');  
const fs = require('fs');  

exports.main = async (event, context) => {  
  //event为客户端上传的参数  
  console.log('event : ', event)  

  // 需要写入excel的数据,通常可能是从数据库中查询获得,这里为演示,使用本地数据  
  var data = [{  
    name: 'sheet1',  
    data: [  
      [  
        '序号',  
        '姓名',  
        '年龄'  
      ],  
      [  
        '1',  
        '丁元英',  
        '40'  

      ],  
      [  
        '2',  
        '韩楚风',  
        '45'  
      ]  
    ]  
  }, {  
    name: 'sheet2',  
    data: [] // sheet2的数据,此处省略  
  }]  

  let buffer = xlsx.build(data);  

  let fileName = '导出结果_' + new Date().getTime() + '.xlsx' //导出文件名  

  // 写入文件  
  // fs.writeFileSync('/tmp/' + fileName, buffer, {});  

  // console.log("Write completed.");  

  // const fileStream = fs.createReadStream('/tmp/' + fileName)  

  //上传文件到云存储  
  let uploadRes = await uniCloud.uploadFile({  
    cloudPath: fileName,  
    fileContent: buffer  
  })  

  console.log('uploadRes', uploadRes);  

  if (uploadRes.fileID) { //上传成功  
    //获取临时下载地址  
    let getUrlRes = await uniCloud.getTempFileURL({  
      fileList: [uploadRes.fileID]  
    })  

    //获取文件临时下载地址  
    if (getUrlRes.fileList && getUrlRes.fileList.length > 0) {  
      console.log("getTempFileURL success");  
      //返回下载地址  
      return {  
        code: 'SUCCESS',  
        url: getUrlRes.fileList[0].download_url  
      }  
    } else {  
      console.log("getTempFileURL fail");  
      return {  
        code: 'error',  
        msg: '获取文件下载地址失败'  
      }  
    }  
  }  

  //返回数据给客户端  
  return {}  
};  
MonikaCeng

MonikaCeng

直接前端生成cvs下载也行啊

秋峰

秋峰 - 微信小程序开发 云开发 serverless

嗯嗯 上面修改的不错 可以直接使用 感谢

该问题目前已经被锁定, 无法添加新回复