微信小程序如何实现将数据导出生成excel
2023-09-11 14:18:53 时间
码字不易,有帮助的同学希望能关注一下我的微信公众号:Code程序人生,感谢!代码自用自取。
这个需求也是我在接私活的时候遇到的,需求就是,要实现将指定数据库表
的数据全部导出
生成excel和按需导出
,也就是导出全部数据,或者导出指定哪天的数据。
其实我一开始是没有思路的,但是我查了一些资料,发现强大的node是有处理excel表格的模块的。
生产环境的话,因为我为了方便还是选用的云开发,但是云开发其实在语法和内容上和node是没有区别的,无论是写法还是模块,都是相同或者类似的。虽然我没有看过云函数的底层实现源码,但是通过使用也能发现,它其实就是基于node做的封装,为我们提供了很多便利的API。
话不多说,我们直入主题。
const cloud = require('wx-server-sdk')
cloud.init({
env:'你的云环境ID'
})
const xlsx = require('node-xlsx') //导入Excel类库
const db = cloud.database() //声明数据库对象
const _ = db.command
exports.main = async (event, context) => { //主函数入口
try {
let schoolBusInfo = event.data;
console.log(schoolBusInfo);
let dataCVS = `schoolBusInfo-${Math.floor(Math.random()*1000000000)}.xlsx`
//声明一个Excel表,表的名字用随机数产生
let alldata = [];
let row = ['车牌号', '日期','部门','姓名','联系方式']; //表格的属性,也就是表头说明对象
alldata.push(row); //将此行数据添加到一个向表格中存数据的数组中
//接下来是通过循环将数据存到向表格中存数据的数组中
for (let key = 0; key<schoolBusInfo.length; key++) {
let arr = [];
arr.push(schoolBusInfo[key].carNum);
arr.push(schoolBusInfo[key].Date);
arr.push(schoolBusInfo[key].class);
arr.push(schoolBusInfo[key].name);
arr.push(schoolBusInfo[key].phone);
alldata.push(arr)
}
var buffer = xlsx.build([{
name: "mySheetName",
data: alldata
}]);
//将表格存入到存储库中并返回文件ID
return await cloud.uploadFile({
cloudPath: dataCVS,
fileContent: buffer, //excel二进制文件
})
} catch (error) {
console.error(error)
}
}
如果你是使用的node,可以仿照着这个形式,copy一下,不存在任何坑,以后有机会,我也发一下node版本的。
从上往下讲解一下代码:
- 其实最重要的就是引入了一个
node-xlsx
的模块,这个模块是用来处理excel文件的。 - 这个
let schoolBusInfo = event.data
就是客户端发送过来的,需要导出的数据。 dataCVS
是生成excel文件的名字。row
是数组里存放的是excel文件的表头,就是每一列的第一行的数据。- 然后就是对客户端传过来的数据进行一个循环遍历。
schollBusInfo[key].xxxx
就是发送过来的数据的字段,和前面那个row
表头代表的意义要一致。
var buffer = await xlsx.build([{
name: "mySheetName",
data: alldata
}]);
- ↑↑↑这就是最后一步,进行表的构建,通过我们前面准备的数据,调用
xlsx
的build方法。
因为我使用的是云开发,我可以将生成的数据源存放到云存储里,然后返回给客户端一个云存储的存放地址。
这基本就是全部的一个思路,因为node为我们提供了node-xlsx
这个模块,所有总体的代码编写没有太大问题。
其它语言肯定也存在这种类似的库和包,大家可以查一下资料。
有微信小程序课设、毕设需求联系个人QQ:505417246
关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
最新最全的前端知识总结和项目源码都会第一时间发布到微信公众号,请大家多多关注,谢谢
关注公众号后,回复前端面试题,领取大量前端面试题汇总pdf资料
相关文章
- oracle SQL Develop导出数据库中的表格数据到excel
- js导出Excel弹出对话框
- PhpExcel导出excel报错:net::ERR_INVALID_RESPONSE
- POI文件导出至EXCEL,并弹出下载框
- Office EXCEL 创建图片超链接打不开怎么办 Excel打开图片提示发生了意外错误怎么办
- excel表 更改后缀名 xlsx转成csv csv转换xlsx
- EasyUI datagrid-export 将datagrid的数据导出至Excel-解决科学计数法
- 用Python的pandas框架操作Excel文件中的数据教程
- poi导出excel合并单元格(包括列合并、行合并)
- 手把手教你-----巧用Excel批量生成SQL语句,处理大量数据
- PHPExcel导出excel
- java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)
- 在Java中导出word、excel格式文件时JSP页面头的设置
- excel怎么设置密码保护?Excel文件添加密码保护教程
- POI导出Excel--合并单元格
- PHP excel读取excel文件转换为数组
- 使用Navicat将数据从Excel导入到MySQL数据库
- DEV GridControl 导出到Excel
- C# 获取Excel工作薄中Sheet页(工作表)名集合
- 91. SAP 系统里的中文数据,用 ABAP 导出成 Excel 文件时遇到乱码的分析和解决办法
- Atitit.导出excel功能的设计 与解决方案
- SpringBoot中使用Easyexcel实现Excel导入导出功能(二)
- 不夸张地说,在程序员里面,我算得上玩EXCEL比较溜的!
- GridView导出Excel的超好样例
- python 将txt 表格转化为excel
- FastAdmin 导出 Excel 相关资料收集 (2018-08-14)
- [C#] 使用ClosedXML导出excel(且设置其带有时间戳的导出名字)