做网站跟做APP哪个容易,wordpress漏洞挖掘,网站添加二级域名,用手机制作自己app软件下载小程序导出数据到excel表#xff0c;借助云开发后台实现excel数据的保存 我们在开发小程序的过程中#xff0c;可能会有这样的需求#xff1a;如何将云数据库里的数据批量导出到excel表里#xff1f; 这个需求可以用强大的云开发轻松实现#xff01; 这里需要用到云函数借助云开发后台实现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文件 通过上图我们可以看出我们获取下载链接需要用到一个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 thatthiswx.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的功能了。 文章有点长知识点有点多但是大家理解上述内容后就可以对小程序云开发的云函数、云数据库、云存储有一个较为完整的了解过程。 如果你想要了解更多关于云开发CloudBase相关的技术故事/技术实战经验请扫码关注【腾讯云云开发】公众号 转载于:https://www.cnblogs.com/CloudBase/p/11495819.html