本地调用
云控制台调用也是能正常使用的
然后是真机测试
这是云函数中的代码
const cloud = require('wx-server-sdk')
//初始化一下云开发环境
cloud.init({
env: "env"
})
//操作excel用的类库
const xlsx = require('node-xlsx');
// 获取当前时间
const now = new Date();
// 格式化时间为YYYY-MM-DD HH:mm:ss
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
const formattedTime = `${year}-${month}-${day}-${hours}:${minutes}:${seconds}`;
// 云函数入口函数
exports.main = async(event, context) => {
// console.log(event.Date.aac.length)
try {
//1,定义excel表格名
let dataCVS = '学习基础调查表'+ formattedTime +'.xlsx'
//2,定义存储数据的
let alldata = [];
let row = [
'姓名', '年龄', '职业','兴趣爱好','形象需求',
'希望给别人的第一印象', '希望通过形象给别人的第一印象',
'第8题选项','第9题选项','第10题选项','第11题选项',
'第12题选项','第13题选项','第14题选项','第15题选项',
'第16题选项','第17题选项','第18题选项','第19题选项']; //表属性
alldata.push(row);
for (let i = 0; i < event.userdata.length; i ++) {
console.log('循环中的数据',event.userdata[i])
let data = event.userdata[i].imageAnalysis[0]
console.log('循环中的数据data',data.name)
let arr = [];
//姓名
arr.push(data.name);
//年龄
arr.push(data.age);
//职业
arr.push(data.occupation);
//兴趣爱好
arr.push(data.interest);
//形象需求
arr.push(data.imageNeed);
//您希望给别人的第一印象
arr.push(data.impression);
//您希望通过形象给别人的第一印象
arr.push(data.impressionA);
//请将以下三个颜色,按颜色的纯度属性,从最鲜艳到最浑浊排序,如完全不清楚,请在横线处标记“×”
arr.push(data.issuesA);
//在服饰搭配时,全身颜色不能超过三种,这个原则
arr.push(data.issuesB);
//请将以下三种图案,按图案带来的视觉成熟度,从最成熟到最年轻排序
arr.push(data.issuesC);
//请将以下三双鞋,按照商品价格,从高到低排序
arr.push(data.issuesD);
//您对自己的身材横纵向比例清楚吗
arr.push(data.issuesE);
//您在日常服饰搭配时:
arr.push(data.issuesF);
//您的衣橱是否有根据场合来配置.整理
arr.push(data.issuesG);
//您在化妆方面
arr.push(data.issuesH);
//您平时购物时
arr.push(data.issuesI);
//您对家里衣橱的管理
arr.push(data.issuesJ);
//您对自己的发型
arr.push(data.issuesK);
//您在自己日常的形象管理方面
arr.push(data.issuesL);
alldata.push(arr)
}
//3,把数据保存到excel里
var buffer = await xlsx.build([{
name: "excel",
data: alldata
}]);
//4,把excel文件保存到云存储里
return await cloud.uploadFile({
cloudPath: dataCVS,
fileContent: buffer, //excel二进制文件
})
} catch (e) {
console.error(e)
return e
}
}
这是小程序调用的代码
//把数据保存到 excel 里,并把 excel 保存到云存储
savaExcel(userdata) {
console.log('把数据保存到excel调用接口')
let that = this
wx.cloud.callFunction({
name: "excelImport",
data: {
userdata: userdata
},
success(res) {
console.log("保存成功", res)
that.getFileUrl(res.result.fileID)
},
fail(res) {
console.log("保存失败", res)
}
})
}
真机调试的时候返回结果就连fileID都没有
给各位大佬添麻烦了,我找到原因了,是因为我没有重新部署我的云函数代码