目录

老规矩,先看效果图

实现思路

一,创建excel云函数

二,读取云数据库里的数据

三,安装生成excel文件的类库 node-xlsx

四,编写把数据保存到excel的代码,

五,把excel存到云存储里并返回对应的云文件地址

六,获取云文件地址下载excel文件


我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里。如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了。这里需要用到云函数,云存储和云数据库。可以说通过这一个例子,把我们微信小程序云开发相关的知识都用到了。

老规矩,先看效果图


上图就是我们保存用户数据到excel生成的excel文件。

实现思路

  • 1,创建云函数
  • 2,在云函数里读取云数据库里的数据
  • 3,安装node-xlsx类库(node类库)
  • 4,把云数据库里读取到的数据存到excel里
  • 5,把excel存到云存储里并返回对应的云文件地址
  • 6,通过云文件地址下载excel文件

一,创建excel云函数

关于云函数的创建,我这里不多说了。如果你连云函数的创建都不知道,建议你去小程序云开发官方文档去看看。

创建云函数时有两点需要注意的,给大家说下。

  • 1,一定要把app.js里的环境id换成你自己的
  • 2,你的云函数目录要选择你对应的云开发环境(通常这里默认选中的)
    不过你这里的云开发环境要和你app.js里的保持一致

二,读取云数据库里的数据

我们第一步创建好云函数以后,可以先在云函数里读取我们的云数据库里的数据。

  • 1,先看下我们云数据库里的数据
  • 2,编写云函数,读取云数据库里的数据(一定要记得部署云函数)
  • 3,成功读取到数据

把读取user数据表的完整代码给大家贴出来。

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({env: "test-vsbkm"
})
// 云函数入口函数
exports.main = async(event, context) => {return await cloud.database().collection('users').get();
}

三,安装生成excel文件的类库 node-xlsx

通过上面第二步可以看到我们已经成功的拿到需要保存到excel的源数据,我们接下来要做的就是把数据保存到excel

  • 1,安装node-xlsx类库

    这一步需要我们事先安装node,因为我们要用到npm命令,通过命令行
npm install node-xlsx

可以看出我们安装完成以后,多了一个package-lock.json的文件

四,编写把数据保存到excel的代码,

下图是我们的核心代码

这里的数据是我们查询的users表的数据,然后通过下面代码遍历数组,然后存入excel。这里需要注意我们的id,name,weixin要和users表里的对应。

   for (let key in userdata) {let arr = [];arr.push(userdata[key].id);arr.push(userdata[key].name);arr.push(userdata[key].weixin);alldata.push(arr)}

还有下面这段代码,是把excel保存到云存储用的

    //4,把excel文件保存到云存储里return await cloud.uploadFile({cloudPath: dataCVS,fileContent: buffer, //excel二进制文件})

下面把完整的excel里的index.js代码贴给大家,记得把云开发环境id换成你自己的。

const cloud = require('wx-server-sdk')
//这里最好也初始化一下你的云开发环境
cloud.init({env: "test-vsbkm"
})
//操作excel用的类库
const xlsx = require('node-xlsx');// 云函数入口函数
exports.main = async(event, context) => {try {let {userdata} = event//1,定义excel表格名let dataCVS = 'test.xlsx'//2,定义存储数据的let alldata = [];let row = ['id', '姓名', '微信号']; //表属性alldata.push(row);for (let key in userdata) {let arr = [];arr.push(userdata[key].id);arr.push(userdata[key].name);arr.push(userdata[key].weixin);alldata.push(arr)}//3,把数据保存到excel里var buffer = await xlsx.build([{name: "mySheetName",data: alldata}]);//4,把excel文件保存到云存储里return await cloud.uploadFile({cloudPath: dataCVS,fileContent: buffer, //excel二进制文件})} catch (e) {console.error(e)return e}
}

五,把excel存到云存储里并返回对应的云文件地址

我们上面已经成功的把数据存到excel里,并把excel文件存到云存储里。可以看下效果。

我们这个时候,就可以通过上图的下载地址下载excel文件了。

我们打开下载的excel

其实到这里就差不多实现了基本的把数据保存到excel里的功能了,但是我们要下载excel,总不能每次都去云开发后台吧。所以我们接下来要动态的获取这个下载地址。

六,获取云文件地址下载excel文件


通过上图我们可以看出,我们获取下载链接需要用到一个fileID,而这个fileID在我们保存excel到云存储时,有返回,如下图。我们把fileID传给我们获取下载链接的方法即可。

  • 1,我们获取到了下载链接,接下来就要把下载链接显示到页面
  • 2,代码显示到页面以后,我们就要复制这个链接,方便用户粘贴到浏览器或者微信去下载

下面把我这个页面的完整代码贴给大家

Page({onLoad: function(options) {let that = this;//读取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) {let that = thiswx.cloud.callFunction({name: "excel",data: {userdata: userdata},success(res) {console.log("保存成功", res)that.getFileUrl(res.result.fileID)},fail(res) {console.log("保存失败", res)}})},//获取云存储文件下载地址,这个地址有效期一天getFileUrl(fileID) {let that = this;wx.cloud.getTempFileURL({fileList: [fileID],success: res => {// get temp file URLconsole.log("文件下载链接", res.fileList[0].tempFileURL)that.setData({fileUrl: res.fileList[0].tempFileURL})},fail: err => {// handle error}})},//复制excel文件下载链接copyFileUrl() {let that=thiswx.setClipboardData({data: that.data.fileUrl,success(res) {wx.getClipboardData({success(res) {console.log("复制成功",res.data) // data}})}})}
})

给大家说下上面代码的步骤。

  • 1,下通过getUsers云函数去云数据库获取数据
  • 2,把获取到的数据通过excel云函数把数据保存到excel,然后把excel保存的云存储。
  • 3,获取云存储里的文件下载链接
  • 4,复制下载链接,到浏览器里下载excel文件。

到这里我们就完整的实现了把数据保存到excel的功能了。

文章有点长,知识点有点多,但是大家把这个搞会以后,就可以完整的学习小程序云开发的:云函数,云数据库,云存储了。可以说这是一个综合的案例。

有什么不懂的地方,或者有疑问的地方,请在文章底部留言,我看到都会及时解答的。后面我还会出一系列关于云开发的文章,敬请关注

小程序导出数据到excel表,借助云开发后台实现excel数据的保存相关推荐

  1. c#后台如何导出excel到本地_小程序导出数据到excel表,借助云开发后台实现excel数据的保存...

    我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...

  2. 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序

    老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...

  3. 微信小程序仿网易云音乐(使用云开发,提供源码)

    微信小程序仿网易云音乐(使用云开发,提供源码)!!!!!!!!!!! 源码: 链接:https://pan.baidu.com/s/1z_ZnRVbT4vjEENimi8yBQQ 提取码:u0o3 一 ...

  4. 微信小程序:物流运费计算模块(云开发)

    // 目前想要搭建一个商城类型的小程序,官方貌似还没有响应计算运费的API: // 找了半天貌似也都只有描写UI这块怎么写的,关键是运费每家公司的计算标准都不太一样,并且也没有一个准确的价格 // 于 ...

  5. 小程序(四):微信登录功能的实现+云开发数据库

    目录 好文推荐: 完整代码gitee仓库查看:https://gitee.com/CMD-UROOT/xzyy.git 一.微信登录 1.点击按钮(或其他),获取用户信息(昵称.头像等). 2.通过微 ...

  6. 微信小程序超出代码大小限制,使用云开发调用文件+js动态调取(实例)

    微信小程序代码上传大小有限制(可能是因为个人),但是提供了方便的云开发,有云数据库.数据存放.云函数,等功能.基础版还是免费的! 我在页面中需要调用13张图片,但是上传.预感.真机调试时都以" ...

  7. javaSE中的数据导出到Excel表、javaEE中后台生成Excel文件到浏览器端下载

    整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...

  8. 小程序里显示附近的位置,云开发数据库实现附近的人,按照位置远近排序,附近多少公里内的好友

    最近好多同学问石头哥附近的人如何实现.今天呢,就借助这篇文章,给大家做一个系统的解答. 老规矩,先看效果图 可以看到我们在地图上显示了附近的一些标记点. 接下来就教大家如何实现附近的位置. 一,创建数 ...

  9. JS 打印 data数据_小程序导出数据到excel表

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...

最新文章

  1. 史上最详细的RocketMq 下单支付案例 分享
  2. leetCode刷题-第二题两数之和
  3. 通信距离与哪些因素相关?为什么模块通信距离和厂家宣传的不一样?
  4. 黑马程序员_7k面试题交通管理系统
  5. pytorch线性回归(笔记一)
  6. 基础接口 java_java基础中的 接口方法的问题
  7. USB转串口线突然不好用了
  8. php 导入excal,php导入excel php使用phpexcel导入excel文件
  9. 初中生学计算机应用有什么好方面,计算机有哪些专业 初中毕业学习相关专业有发展吗...
  10. TLSF 内存分配算法详解
  11. c语言常见关键字汇总
  12. 了解python中的进程,线程和协成
  13. Java基础--数值和字符串
  14. C语言递归函数 写一个程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数
  15. dw选项卡怎么设置,dw表单中怎么设置方框里面打对勾
  16. uniapp项目运行到小米平板调试
  17. canvas绘制象棋谱
  18. how2j网站前端项目——天猫前端(第一次)学习笔记4
  19. 常用电子元器件应用要点及识别方法
  20. 编译原理(龙书)学习笔记 第一章

热门文章

  1. oracle计算6的阶乘,oracle 求阶乘
  2. 【转载】MATLB绘图
  3. 深入理解Android之Gradle
  4. 再见,Pycharm
  5. play home android,playhome
  6. 读书 | 每天演好一个情绪稳定的成年人
  7. 基于深度神经网络的火灾探测声学灭火器控制
  8. android源码 谷歌拼音输入法已停止运行
  9. java将汉字转化为拼音
  10. c语言编程 企业发放,求c语言编程企业员工全年销售额统计及奖金发放系..._统计师_帮考网...