1.我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里。如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了。这里需要用到云函数,云存储和云数据库。可以说通过这一个例子,把我们微信小程序云开发相关的知识都用到了。
老规矩,先看效果图2.上图就是我们保存用户数据到excel生成的excel文件。
实现思路1,创建云函数2,在云函数里读取云数据库里的数据3,安装node-xlsx类库(node类库)4,把云数据库里读取到的数据存到excel里5,把excel存到云存储里并返回对应的云文件地址6,通过云文件地址下载excel文件一,创建excel云函数3.关于云函数的创建,我这里不多说了。如果你连云函数的创建都不知道,建议你去小程序云开发官方文档去看看。或者看下我录制的云开发入门的视频:https://edu.csdn.net/course/detail/9604
创建云函数时有两点需要注意的,给大家说下1,一定要把app.js里的环境id换成你自己的2,你的云函数目录要选择你对应的云开发环境(通常这里默认选中的)不过你这里的云开发环境要和你app.js里的保持一致二,读取云数据库里的数据4.我们第一步创建好云函数以后,可以先在云函数里读取我们的云数据库里的数据。
1,先看下我们云数据库里的数据2,编写云函数,读取云数据库里的数据(一定要记得部署云函数)3,成功读取到数据5.把读取user数据表的完整代码给大家贴出来。
//云函数入口文件constcloudrequire('wx-server-sdk')cloud.init({env:"test-vsbkm"})//云函数入口函数exports.mainasync(event,context){returnawaitcloud.database().collection('users').get();}三,安装生成excel文件的类库node-xlsx6.通过上面第二步可以看到我们已经成功的拿到需要保存到excel的源数据,我们接下来要做的就是把数据保存到excel
1,安装node-xlsx类库这一步需要我们事先安装node,因为我们要用到npm命令,通过命令行npminstallnode-xlsx7.可以看出我们安装完成以后,多了一个package-lock.json的文件
四,编写把数据保存到excel的代码,8.下图是我们的核心代码这里的数据是我们查询的users表的数据,然后通过下面代码遍历数组,然后存入excel。这里需要注意我们的id,name,weixin要和users表里的对应。
for(letkeyinuserdata){letarr[];arr.push(userdata[key].id);arr.push(userdata[key].name);arr.push(userdata[key].weixin);alldata.push(arr)}9.还有下面这段代码,是把excel保存到云存储用的
//4,把excel文件保存到云存储里returnawaitcloud.uploadFile({cloudPath:dataCVS,fileContent:buffer,//excel二进制文件})10.下面把完整的excel里的index.js代码贴给大家,记得把云开发环境id换成你自己的。
constcloudrequire('wx-server-sdk')//这里最好也初始化一下你的云开发环境cloud.init({env:"test-vsbkm"})//操作excel用的类库constxlsxrequire('node-xlsx');//云函数入口函数exports.mainasync(event,context){try{let{userdata}event//1,定义excel表格名letdataCVS'test.xlsx'//2,定义存储数据的letalldata[];letrow['id','姓名','微信号'];//表属性alldata.push(row);for(letkeyinuserdata){letarr[];arr.push(userdata[key].id);arr.push(userdata[key].name);arr.push(userdata[key].weixin);alldata.push(arr)}//3,把数据保存到excel里varbufferawaitxlsx.build([{name:"mySheetName",data:alldata}]);//4,把excel文件保存到云存储里returnawaitcloud.uploadFile({cloudPath:dataCVS,fileContent:buffer,//excel二进制文件})}catch(e){console.error(e)returne}}五,把excel存到云存储里并返回对应的云文件地址11.我们上面已经成功的把数据存到excel里,并把excel文件存到云存储里。可以看下效果。我们这个时候,就可以通过上图的下载地址下载excel文件了。我们打开下载的excel其实到这里就差不多实现了基本的把数据保存到excel里的功能了,但是我们要下载excel,总不能每次都去云开发后台吧。所以我们接下来要动态的获取这个下载地址。
六,获取云文件地址下载excel文件12.通过上图我们可以看出,我们获取下载链接需要用到一个fileID,而这个fileID在我们保存excel到云存储时,有返回,如下图。我们把fileID传给我们获取下载链接的方法即可。
1,我们获取到了下载链接,接下来就要把下载链接显示到页面2,代码显示到页面以后,我们就要复制这个链接,方便用户粘贴到浏览器或者微信去下载13.下面把我这个页面的完整代码贴给大家
Page({onLoad:function(options){letthatthis;//读取users表数据wx.cloud.callFunction({name:"getUsers",success(res){console.log("读取成功",res.result.data)that.savaExcel(res.result.data)},fail(res){console.log("读取失败",res)}})},//把数据保存到excel里,并把excel保存到云存储savaExcel(userdata){letthatthiswx.cloud.callFunction({name:"excel",data:{userdata:userdata},success(res){console.log("保存成功",res)that.getFileUrl(res.result.fileID)},fail(res){console.log("保存失败",res)}})},//获取云存储文件下载地址,这个地址有效期一天getFileUrl(fileID){letthatthis;wx.cloud.getTempFileURL({fileList:[fileID],success:res{//gettempfileURLconsole.log("文件下载链接",res.fileList[0].tempFileURL)that.setData({fileUrl:res.fileList[0].tempFileURL})},fail:err{//handleerror}})},//复制excel文件下载链接copyFileUrl(){letthatthiswx.setClipboardData({data:that.data.fileUrl,success(res){wx.getClipboardData({success(res){console.log("复制成功",res.data)//data}})}})}})14.给大家说下上面代码的步骤。
1,下通过getUsers云函数去云数据库获取数据2,把获取到的数据通过excel云函数把数据保存到excel,然后把excel保存的云存储。3,获取云存储里的文件下载链接4,复制下载链接,到浏览器里下载excel文件。15.到这里我们就完整的实现了把数据保存到excel的功能了。
文章有点长,知识点有点多,但是大家把这个搞会以后,就可以完整的学习小程序云开发的:云函数,云数据库,云存储了。可以说这是一个综合的案例。有什么不懂的地方,或者有疑问的地方,请在文章底部留言,我看到都会及时解答的。后面我还会出一系列关于云开发的文章,敬请关注。
小程序导出数据到excel表借助云开发后台实现excel数据的保存-如何将excel转成微信小程序-微信小程序生成器
浏览量:4563
时间:
来源:编程小石头
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










