GitHub Demo 地址: jh-weapp-demo 实现一些常用效果、封装通用组件和工具类

小程序码

 npm install node-xlsx

云函数

// 云函数入口文件// npm install node-xlsxconst cloud = require('wx-server-sdk')
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV
})//操作excel用的类库
var xlsx = require('node-xlsx');
const db = cloud.database()
const _ = db.command// 云函数入口函数
exports.main = async (event, context) => {// var momdelArr = event.dicArr// db.collection('Table')//   .where({//     paperId: '84e72bb95f263a98004820c865f5d8c9'//   })//   .field({//     name: true,//   })//   .limit(10)//   .get()//   .then(res => {//     console.log(res.data)//   })var tableList = [{'id': 0,'name': '张三','birthday': '2010-1-1','age': 20,},{'id': 1,'name': '李四','birthday': '2020-1-1','age': 1,}]var dicArr = tableList// try {//1,定义excel表格名let dataCVS = 'test.xlsx'//2,定义存储数据的let alldata = []let row = ['编号', '名称', '生日', '年龄'] //表属性alldata.push(row)for (let key in dicArr) {let arr = []arr.push(dicArr[key].id)arr.push(dicArr[key].name)arr.push(dicArr[key].birthday)arr.push(dicArr[key].age)alldata.push(arr)}//3,把数据保存到excel里var buffer = await xlsx.build([{name: "Sheet1",data: alldata}]);//4,把excel文件保存到云存储里let res = await cloud.uploadFile({cloudPath: 'exportExcel/' + dataCVS,// cloudPath: dataCVS,fileContent: buffer, //excel二进制文件})// .then(res => {// console.log(res.fileID);//   return res// }).catch(function (err) {//   return err// })// return resif (!res.fileID) {return '上传失败'} else {let res2 = await cloud.getTempFileURL({fileList: [res.fileID],})if (!res2.fileList.length) {return '获取下载地址失败'} else {let fileUrl = res2.fileList[0].tempFileURLconsole.log('文件下载链接' + fileUrl);return fileUrl}}
}/*onLoad: function (options) {this.exportExcel()},//云函数,导出ExcelexportExcel() {let that = thiswx.cloud.callFunction({name: "exportExcel",data: {// dicArr: dicArr},success(res) {console.log("保存成功", res)console.log("文件下载链接", res.result)//复制文件路径到剪切板that.copyFileUrl(res.result)//下载并预览// that.downloadExcelFile(res.result)},fail(res) {console.log("保存失败", res)}})},//复制文件路径到剪切板copyFileUrl(url) {wx.setClipboardData({data: url,success: function (res) {wx.getClipboardData({success(res) {console.log("复制成功",res.data) // data}})// wx.showModal({//   title: '提示',//   content: '复制成功',//   success: function (res) {//     if (res.confirm) {//       console.log('确定')//     } else if (res.cancel) {//       console.log('取消')//     }//   }// })}})},//下载并预览downloadExcelFile(url) {wx.downloadFile({url: url,success: function (res) {const tempFilePath = res.tempFilePath;// 保存文件wx.saveFile({tempFilePath,success: function (res) {const savedFilePath = res.savedFilePath;// 文件预览wx.openDocument({filePath: savedFilePath,success: function (res) {console.log('打开文档成功')},});},fail: function (err) {console.log('保存失败:', err)}});},fail: function (err) {console.log('下载失败:', err);},});},//文件预览openfile(filePath) {let path = filePath;wx.openDocument({filePath: path,success: (res) => {console.log('读取成功', res)},fail: (err) => {console.log('读取失败', err)}})},
*/

js 代码:

  /*** 生命周期函数--监听页面加载*/onLoad: function (options) {this.exportExcel()},//云函数,导出ExcelexportExcel() {let that = thiswx.cloud.callFunction({name: "exportExcel",data: {// dicArr: dicArr},success(res) {console.log("保存成功", res)console.log("文件下载链接", res.result)//复制文件路径到剪切板that.copyFileUrl(res.result)//下载并预览// that.downloadExcelFile(res.result)},fail(res) {console.log("保存失败", res)}})},//复制文件路径到剪切板copyFileUrl(url) {wx.setClipboardData({data: url,success: function (res) {wx.getClipboardData({success(res) {console.log("复制成功",res.data) // data}})// wx.showModal({//   title: '提示',//   content: '复制成功',//   success: function (res) {//     if (res.confirm) {//       console.log('确定')//     } else if (res.cancel) {//       console.log('取消')//     }//   }// })}})},//下载并预览downloadExcelFile(url) {wx.downloadFile({url: url,success: function (res) {const tempFilePath = res.tempFilePath;// 保存文件wx.saveFile({tempFilePath,success: function (res) {const savedFilePath = res.savedFilePath;// 文件预览wx.openDocument({filePath: savedFilePath,success: function (res) {console.log('打开文档成功')},});},fail: function (err) {console.log('保存失败:', err)}});},fail: function (err) {console.log('下载失败:', err);},});},//文件预览openfile(filePath) {let path = filePath;wx.openDocument({filePath: path,success: (res) => {console.log('读取成功', res)},fail: (err) => {console.log('读取失败', err)}})},

微信小程序 - 数据转excel下载并复制链接相关推荐

  1. 微信小程序数据包教程抓取,看完就是学会

    有很多粉丝小伙伴问到能不能抓取到微信小程序数据呢?答案当然是肯定的,通过Fiddler或者Charles这些主流的抓包工具都可以抓得到,在IOS平台抓取微信小程序和https请求都是一样的设置,接下来 ...

  2. 微信小程序数据渲染和数据请求

    微信开放文档 数据渲染 概念:微信小程序和Vue实现理念是一致的,是基于数据驱动完成页面数据的自动化渲染.微信小程序中数据和Vue一样是响应式,即数据的更改会驱动页面进行数据的刷新. 具体操作 首先找 ...

  3. 利用fiddler抓包爬取微信小程序数据

    利用fiddler抓包爬取微信小程序数据 1.背景原理 有些微信小程序无法在PC端进行访问 原因 判断非微信'内嵌浏览器',则禁止访问 解决方法 模拟微信'内嵌浏览器'进行访问,需要获取的数据有:Us ...

  4. Burpsuite 抓取微信小程序数据包

    Burpsuite 抓取微信小程序数据包 一.网上的方法 ① 手机导入CA证书,设置指定DNS,亲测无效 备注:此方法可抓取微信公众号的数据,但是无法抓取微信小程序的数据 ② 使用安卓模拟器,我下载的 ...

  5. 【羊了个羊】Burp抓取IOS微信小程序数据包

    描述 最近,小游戏"羊了个羊"在朋友圈刷屏,网友纷纷表示,游戏开发者多少有个病要治!!! 本文记录,如何使用Burp抓取ios微信小程序数据包. 工具准备 Burp 苹果手机 wi ...

  6. 抓取微信小程序数据包的三种方法

    前言 做安全测试的都会遇到测试某微信小程序,而微信小程序基本都是基于HTTPS的,所以抓取HTTPS数据包就是最关键的一步.最近几天折腾了一下,整理了比较简单.方便的三种方法. 条件 抓取微信小程序数 ...

  7. 跳一跳改分java源码_解密微信小程序漏洞:可下载任意小游戏源代码,“跳一跳”可改分...

    原标题:解密微信小程序漏洞:可下载任意小游戏源代码,"跳一跳"可改分 雷锋网消息,据 IT 之家 1 月 2 日消息称,"跳一跳"居然可以利用漏洞自己改分数,甚 ...

  8. wp微信小程序终极版开源下载

    先让大家看看效果! aip网站 wp的博客http://wenan.5186a.comhttp://wenan.5186a.com 喜欢的话加我微信我打包给你!www5186a wp微信小程序终极版开 ...

  9. 微信小程序数据排序和倒序reverse()

    var a = [3,7,2]; 微信小程序数据排序,先将数据按从小到大排序 //定义compare函数,参数name是对象的某一个属性,比如age.salary //返回一个可以用来对包含该成员的对 ...

最新文章

  1. DeepMind发布神经网络、强化学习库,网友:推动JAX发展
  2. TrackMouseEvent介绍
  3. matlab 求解黄金分割率
  4. JavaScript排序算法——插入排序算法
  5. 米家zigbee传感器抓包_如果有一代,米家人体传感器2值得你去更换吗?
  6. spark mysql 交互_Spark - 直接操作数据源 MySQL
  7. 滑雪(信息学奥赛一本通-T1280)
  8. jQuery笔记二——基础/动画
  9. app自动化之混合应用的测试(h5,小程序)
  10. C语言文件加密解密软件
  11. 主动轮廓线模型Snake模型简介amp;openCV中cvSnakeImage()函数代码分析
  12. android左抽屉点击事件,Android导航抽屉单击事件问题
  13. 企业官方微博的视觉设计与营销策略分析
  14. 最棒的10款MySQL GUI工具
  15. AX200网卡支持linux,Intel 9260/AX200网卡在Deepin/UOS/Ubuntu下网速慢的处理
  16. 关于meta name=viewport content=width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalabl...
  17. 【第二十四期】golang 一年经验开发 富途
  18. git amend如何撤销
  19. 征服统计学08|天天在用的P值到底是个啥?
  20. 解决IDEA-not allow to run in parallel

热门文章

  1. 清理 Anaconda 的 pkgs
  2. 解决笔记本电脑外接显示器后声音播放不了的问题
  3. 通过SqlDbx导出*.sql
  4. “管中窥豹”,MyCAT的基因缺陷
  5. 【图像分割】基于模糊核聚类算法KFCM实现医学图像分割matlab代码
  6. 2022年双非计算机保研经历分享(浙大、北航、中科院等)
  7. Laravel + Elasticsearch 实现中文搜索
  8. deepin系统修改IP地址记录
  9. android系统更新原理简介
  10. rpg服务器无限刷金币bug,荆棘谷惊现无限刷金BUG 无脑跑商盆满钵满