收藏
回答

大神帮忙看看,云函数生成excel,2个小时找不出毛病?


传入的数据

内容1

内容2

云函数:

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

const nodeExcel = require('excel-export');

const path = require('path'); 


cloud.init({

  env: "lghcloud2-fnker",

  traceUser: true

})

const db = cloud.database({  env: "lghcloud2-fnker"})


// 云函数入口函数

exports.main = async (event, context) => {

if(event.type=='publish'){

  var tableMap = {

    styleXmlFile:path.join(__dirname,"styles.xml"),

    name: Date.now()+"-export",

    cols: [],

    rows: [],

  }

  var tableHead = event.dataHead;

  //添加表头

  for(var i=0;i<tableHead.length;i++){

    tableMap.cols[tableMap.cols.length]={

      caption:tableHead[i],

      type:'string'

    }

  }

  //表体:伪数据

  var MtableList = event.Mdatalist

  var assMtableList = event.assMdatalist

  //添加每一行数据

if(MtableList.length>=assMtableList.length){

  for(let i=0;i<assMtableList.length;i++){

    tableMap.rows[tableMap.rows.length]=[

      MtableList[i].process,

      MtableList[i].pieceRate,

      assMtableList[i].assprocess,

      assMtableList[i].asspieceRate,

    ]

  }

  for(let i=assMtableList.length;i<MtableList.length;i++){

    tableMap.rows[tableMap.rows.length]=[

      MtableList[i].process,

      MtableList[i].pieceRate,"",""

    ]

  }


var name=event.bagname

  //保存excelResult到相应位置

  var excelResult = nodeExcel.execute(tableMap);

  var filePath = "outputExcels";

  var fileName = name + '.xlsx';

  //图片上传到云存储

  return await cloud.uploadFile({

    cloudPath: path.join(filePath, fileName),

    fileContent: new Buffer(excelResult,'binary')

  }).then(res=>{

    console.log(res.fileID);

    return res;

  }).catch(err=>{


  });

}


}


}

最后一次编辑于  2020-05-19
回答关注问题邀请回答
收藏

1 个回答

  • 121
    121
    2020-05-18

    老哥,你报错信息提示这个值找不到,你再看看你传入的参数。

    2020-05-18
    有用
    回复 1
    • 大雪纷飞
      大雪纷飞
      2020-05-19
      参数没问题。。。。
      2020-05-19
      回复
登录 后发表内容
问题标签