当前位置: 首页 > news >正文

微信小程序云开发实现利用云函数将数据库表的数据导出到excel中

实现目标

将所有订单信息导出到excel表格中

 思路

1、在页面中bindtap绑定一个导出点击事件daochu()

2、先获取所有订单信息,并将数据添加到List数组中

3、传入以List数组作为参数,调用get_excel云函数

4、get_excel云函数利用node-xlsx第三方库,在云函数所在目录npm install安装node-xlsx

5、在云函数导入const xlsx = require('node-xlsx'),并设置表格第一行的列数据

6、循环List数组将数据依次添加到第二行、第三行、第四行等等。

7、云函数返回生成excel的临时地址

8、在页面js获取到该临时地址并预览excel表格

完整代码

saveexcel.js

const app = getApp()
Page({/*** 页面的初始数据*/data: {},daochu() {var that = thiswx.showLoading({title: '正在加载',})var List = []wx.cloud.database().collection('yxb_nmkq_order').count().then(async function name(res) {console.log(res.total)var batchTimes = Math.ceil(res.total / 20)for (let index = 0; index < batchTimes; index++) {console.log("第" + index + "次循环");//异步转同步var itemlist = await that.getitemlist(index)List = List.concat(itemlist)}that.setData({List: List})console.log("处理完毕", List);wx.cloud.callFunction({// 要调用的云函数名称name: 'nmkq_get_excel',// 传递给云函数的event参数data: {List: that.data.List}}).then(res => {console.log("云函数结束");console.log(res);that.saveExcel(res.result.fileID)}).catch(err => {// handle errorwx.hideLoading({success: (res) => {wx.showToast({title: '下载失败!',icon: 'none'})},})})})},getitemlist(index) {return new Promise((rev, rej) => {wx.cloud.database().collection('yxb_nmkq_order').skip(index * 20).limit(20).get({success: function (res) {// res.data 包含该记录的数据console.log(res.data)rev(res.data)}})})},saveExcel(fileID) {var that = thiswx.cloud.getTempFileURL({fileList: [fileID],success: res => {that.setData({fileUrl: res.fileList[0].tempFileURL})console.log("最后的地址" + that.data.fileUrl);wx.downloadFile({url: that.data.fileUrl,success: (res) => {that.setData({httpfile: res.tempFilePath})console.log("找不到这个地址?" + that.data.httpfile);//预览文件wx.openDocument({filePath: that.data.httpfile,showMenu: true,success: res => {console.log("预览成功");wx.hideLoading({success: (res) => {},})},fail: err => {console.log(err);}})},fail: (err) => {console.log('读取失败', err)wx.showToast({title: '读取失败!',})}})},fail: err => {console.log(err);wx.showToast({title: '下载失败2!',icon: 'none'})}})},})

 saveexcel.json

{"usingComponents": {},"navigationBarTitleText": "数据导出excel"
}

  saveexcel.wxml


<view style="width: 100%;display: flex;justify-content: center;">
<button style="width: 80%;margin: 20rpx 0;" bindtap="daochu">导出</button>
</view>

云函数写法:

云函数目录/index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')
const xlsx = require('node-xlsx')cloud.init()// 云函数入口函数
exports.main = async (event, context) => {console.log(event);try {let List = event.List//2,定义存储数据的let alldata = [];let row = ['记录号', '订单号', '用户id', '商品名称', '付款价格', '手机号', '姓名', '数量', '备注', '创建时间', '状态值']; //表属性alldata.push(row);for (var i = 0; i < List.length; i++) {let arr = [];arr.push(List[i]._id);arr.push(List[i].orderId);arr.push(List[i].user._id);arr.push(List[i].shop.title);arr.push(List[i].fkprice);arr.push(List[i].phone);arr.push(List[i].username);arr.push(List[i].number);arr.push(List[i].bz);arr.push(List[i].time));arr.push(List[i].status);alldata.push(arr)}console.log(alldata);//3,把数据保存到excel里var buffer = await xlsx.build([{name: "mySheetName",data: alldata}]);console.log(buffer);//4,把excel文件保存到云存储里return await cloud.uploadFile({cloudPath: Date.now() + 'shuju.xlsx',fileContent: buffer, //excel二进制文件})} catch (e) {console.error(e)return e}
}

如果这篇文章对您有所帮助,给个小赞赞吧🌹

相关文章:

微信小程序云开发实现利用云函数将数据库表的数据导出到excel中

实现目标 将所有订单信息导出到excel表格中 思路 1、在页面中bindtap绑定一个导出点击事件daochu() 2、先获取所有订单信息&#xff0c;并将数据添加到List数组中 3、传入以List数组作为参数&#xff0c;调用get_excel云函数 4、get_excel云函数利用node-xlsx第三方库&#…...

python 字符串(str)、列表(list)、元组(tuple)、字典(dict)

学习目标: 1:能够知道如何定义一个字符串; [重点] 使用双引号引起来: 变量名 "xxxx" 2:能够知道切片的语法格式; [重点] [起始: 结束] 3:掌握如何定义一个列表; [重点] 使用[ ]引起来: 变量名 [xx,xx,...] 4:能够说出4个列表相关的方法; [了解] ap…...

【源码】SpringBoot事务注册原理

前言 对于数据库的操作&#xff0c;可能存在脏读、不可重复读、幻读等问题&#xff0c;从而引入了事务的概念。 事务 1.1 事务的定义 事务是指在数据库管理系统中&#xff0c;一系列紧密相关的操作序列&#xff0c;这些操作作为一个单一的工作单元执行。事务的特点是要么全…...

技巧:合并ZIP分卷压缩包

如果ZIP压缩文件文件体积过大&#xff0c;大家可能会选择“分卷压缩”来压缩ZIP文件&#xff0c;那么&#xff0c;如何合并zip分卷压缩包呢&#xff1f;今天我们分享两个ZIP分卷压缩包合并的方法给大家。 方法一&#xff1a; 我们可以将分卷压缩包&#xff0c;通过解压的方式…...

数据挖掘 | 实验三 决策树分类算法

文章目录 一、目的与要求二、实验设备与环境、数据三、实验内容四、实验小结 一、目的与要求 1&#xff09;熟悉决策树的原理&#xff1b; 2&#xff09;熟练使用sklearn库中相关决策树分类算法、预测方法&#xff1b; 3&#xff09;熟悉pydotplus、 GraphViz等库中决策树模型…...

Python机器学习预测区间估计工具库之mapie使用详解

概要 在数据科学和机器学习领域,预测的不确定性估计是一个非常重要的课题。Python的mapie库是一种专注于预测区间估计的工具,旨在提供简单易用的接口来计算和评估预测的不确定性。通过mapie库,用户可以为各种回归和分类模型计算预测区间,从而更好地理解模型预测的可靠性。…...

Linux基础指令磁盘管理002

LVM&#xff08;Logical Volume Manager&#xff09;是Linux系统中一种灵活的磁盘管理和存储解决方案&#xff0c;它允许用户在物理卷&#xff08;Physical Volumes, PV&#xff09;上创建卷组&#xff08;Volume Groups, VG&#xff09;&#xff0c;然后在卷组上创建逻辑卷&am…...

Python怎么添加库:深入解析与操作指南

Python怎么添加库&#xff1a;深入解析与操作指南 在Python编程中&#xff0c;库&#xff08;Library&#xff09;扮演着至关重要的角色。它们为我们提供了大量的函数、类和模块&#xff0c;使得我们可以更高效地编写代码&#xff0c;实现各种功能。那么&#xff0c;Python如何…...

Python | 虚拟环境的增删改查

mkvirtualenv创建虚拟环境 mkvirtualenv是用于在Pyhon中创建虚拟环境的命令。它通过使用vitualenv库来创建一个隔离的Python环境&#xff0c;以便您可以安装特定版本的Python包&#xff0c;而不会影响全局Python环境。 使用方法: 安装virtualenv&#xff1a;pip install vir…...

【MySQL数据库】:MySQL内外连接

目录 内外连接和多表查询的区别 内连接 外连接 左外连接 右外连接 简单案例 内外连接和多表查询的区别 在 MySQL 中&#xff0c;内连接是多表查询的一种方式&#xff0c;但多表查询包含的范围更广泛。外连接也是多表查询的一种具体形式&#xff0c;而多表查询是一个更…...

C# FTP/SFTP 详解及连接 FTP/SFTP 方式示例汇总

文章目录 1、FTP/SFTP基础知识FTPSFTP 2、FTP连接示例3、SFTP连接示例4、总结 在软件开发中&#xff0c;文件传输是一个常见的需求。尤其是在不同的服务器之间传输文件时&#xff0c;FTP&#xff08;文件传输协议&#xff09;和SFTP&#xff08;安全文件传输协议&#xff09;成…...

二、【源码】实现映射器的注册和使用

源码地址&#xff1a;https://github.com/mybatis/mybatis-3/ 仓库地址&#xff1a;https://gitcode.net/qq_42665745/mybatis/-/tree/02-auto-registry-proxy 实现映射器的注册和使用 这一节的目的主要是实现自动注册映射器工厂 流程&#xff1a; 1.创建MapperRegistry注册…...

Android Compose 十:常用组件列表 监听

1 去掉超出滑动区域时的拖拽的阴影 即 overScrollMode 代码如下 CompositionLocalProvider(LocalOverscrollConfiguration provides null) {LazyColumn() {items(list, key {list.indexOf(it)}){Row(Modifier.animateItemPlacement(tween(durationMillis 250))) {Text(text…...

Wireshark 如何查找包含特定数据的数据帧

1、查找包含特定 string 的数据帧 使用如下指令&#xff1a; 双引号中所要查找的字符串 frame contains "xxx" 查找字符串 “heartbeat” 示例&#xff1a; 2、查找包含特定16进制的数据帧 使用如下指令&#xff1a; TCP&#xff1a;在TCP流中查找 tcp contai…...

【深度学习入门篇一】阿里云服务器(不需要配环境直接上手跟学代码)

前言 博主刚刚开始学深度学习&#xff0c;配环境配的心力交瘁&#xff0c;一塌糊涂&#xff0c;不想配环境的刚入门的同伴们可以直接选择阿里云服务器 阿里云天池实验室&#xff0c;在入门阶段跑个小项目完全没有问题&#xff0c;不要自己傻傻的在那配环境配了半天还不匹配&a…...

app,waf笔记

API攻防 知识点&#xff1a; 1、HTTP接口类-测评 2、RPC类接口-测评 3、Web Service类-测评 内容点&#xff1a; SOAP&#xff08;Simple Object Access Protocol&#xff09;简单对象访问协议是交换数据的一种协议规范&#xff0c;是一种轻量级的、简单的、基于XML&#…...

数据仓库之维度建模

维度建模&#xff08;Dimensional Modeling&#xff09;是一种用于数据仓库设计的方法&#xff0c;旨在优化查询性能并提高数据的可读性。它通过组织数据为事实表和维度表的形式&#xff0c;提供直观的、易于理解的数据模型&#xff0c;使业务用户能够轻松地进行数据分析和查询…...

解决远程服务器连接报错

最近使用服务器进行数据库连接和使用的时候出现了一个报错&#xff1a; Error response from daemon: Conflict. The container name “/mysql” is already in use by container “1bd3733123219372ea7c9377913da661bb621156d518b0306df93cdcceabb8c4”. You have to remove …...

通过电脑查看Wi-Fi密码的方法,提供三种方式

式一&#xff1a; 右击桌面右下角的网络图标&#xff0c;依次选择【网络和Internet设置】、【WLAN】、【网络和共享中心】。点击已连接的无线网络。依次点击【无线属性】、【安全】&#xff0c;勾选下方【显示字符】即可。 方式二&#xff1a; 在开始菜单输入“cmd”进入命令…...

Nvidia 目前的市值为 3.01 万亿美元,超过苹果Apple

人工智能的繁荣将英伟达的市值推高到足以使其成为全球第二大最有价值的公司。 英伟达已成为全球第二大最有价值的公司。周三下午&#xff0c;这家芯片制造巨头的市值达到 3.01 万亿美元&#xff0c;领先于苹果公司的 3 万亿美元。 喜好儿网AIGC专区&#xff1a;https://heehe…...

OmenSuperHub:重新定义游戏本性能控制的开源解决方案

OmenSuperHub&#xff1a;重新定义游戏本性能控制的开源解决方案 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 痛点解析&#xff1a;你的游戏本是否正遭…...

终极优化指南:WeChatExtension-ForMac从卡顿到流畅的蜕变之旅

终极优化指南&#xff1a;WeChatExtension-ForMac从卡顿到流畅的蜕变之旅 【免费下载链接】WeChatExtension-ForMac A plugin for Mac WeChat 项目地址: https://gitcode.com/gh_mirrors/we/WeChatExtension-ForMac WeChatExtension-ForMac是一款专为Mac版微信打造的插件…...

OpenClaw镜像体验:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案

OpenClaw镜像体验&#xff1a;Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案 1. 为什么选择云端体验OpenClaw 第一次接触OpenClaw时&#xff0c;我被它的自动化能力吸引&#xff0c;但本地安装过程却让我望而却步。作为一个经常需要快速验证技术方案的开…...

深求·墨鉴(DeepSeek-OCR-2)效果展示:毛笔字春联识别+吉祥话语义分析

深求墨鉴&#xff08;DeepSeek-OCR-2&#xff09;效果展示&#xff1a;毛笔字春联识别吉祥话语义分析 1. 引言&#xff1a;当传统书法遇见现代AI 春节临近&#xff0c;家家户户都在准备贴春联。那些饱含祝福的毛笔字&#xff0c;是中国人心中最温暖的年味。但你是否想过&…...

Z-Image-Turbo_Sugar脸部Lora生成图像的后处理技巧:使用PS软件进行精修

Z-Image-Turbo_Sugar脸部Lora生成图像的后处理技巧&#xff1a;使用PS软件进行精修 AI生成图像&#xff0c;尤其是像Z-Image-Turbo_Sugar这类擅长生成甜美、精致人像的模型&#xff0c;已经能产出相当惊艳的初稿。但如果你仔细观察&#xff0c;会发现这些图片距离真正“完美”…...

基于RexUniNLU的Matlab科研助手开发全攻略

基于RexUniNLU的Matlab科研助手开发全攻略 科研工作繁琐耗时&#xff1f;让AI帮你自动解析论文、理解公式、生成报告&#xff01; 1. 引言&#xff1a;科研工作的智能革命 作为一名科研工作者&#xff0c;你是否经常被这些场景困扰&#xff1a;面对堆积如山的论文不知从何读起…...

宝塔面板PHP8.0如何快速安装Redis缓存扩展_在PHP设置的安装扩展模块中一键配置

宝塔面板PHP 8.0下无法一键安装Redis扩展&#xff0c;因官方源无适配预编译包且构建脚本不兼容ZTS/NTS、phpize路径及头文件要求&#xff1b;须用pecl手动编译redis-5.3.7并正确配置php.ini。宝塔面板 PHP 8.0 下无法通过「安装扩展」一键启用 Redis&#xff0c;是因为官方源里…...

收藏!小白程序员必看:5大AI Agent框架深度解析,助你轻松入门大模型时代!

2026年&#xff0c;GitHub上AI Agent相关项目星标总量已突破500万。但大多数团队在选型时只看星星数&#xff0c;结果花3个月踩坑才明白——框架没有最好&#xff0c;只有最合适。今天我们不吹不黑&#xff0c;从架构哲学、学习曲线、生产成熟度、多Agent协作、长任务支持、可观…...

通信基础复习+重要知识点记忆

你这段理解整体非常对&#xff0c;我帮你把每一步的专业名字、对错、细节都理顺&#xff0c;让你彻底闭环&#xff1a;1. 比特流 0101 → 方波基带波形 m(t)这一步叫&#xff1a;线路编码 / 基带成形你说的单极性码&#xff0c;就是一种最基础的线路编码。输入&#xff1a;0101…...

AI大模型学习路线图:小白程序员必看,收藏这份高薪入局指南!

AI大模型学习路线图&#xff1a;小白程序员必看&#xff0c;收藏这份高薪入局指南&#xff01; 本文提供了一套完整的AI大模型学习路线&#xff0c;涵盖大模型基础认知、核心技术&#xff08;RAG、Prompt、Agent&#xff09;、开发基础能力、应用场景落地、项目实操流程及面试求…...