微信小程序云开发将数据库数据生成excel

有时候管理员需要把数据库中的数据导出来,方便管理员查看核对数据,本小节演示如何在云函数中使用node-xlsx类库把数据生成excel。整个过程分为以下几个过程:(1) 创建云函数,并安装node-xlsx类库;(2) 读取数据库集合中的所有数据;(3) 通过node-xlsx类库把数据写入excel;(4) 把生成的excel文件上传到云存储,供微信小程序端下载浏览。

  1. 通过node-xlsx类库把数据写入数据库

可以使用node-xlsx中的xlsx.build([{name: excelname, data: exceldata}])生成excel文件,其中name参数为需要生成的excel名称,data是一个二维数组,每个元素对应一个单元格。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

//1,定义excel表格名

let excelname = Math.floor(10000* Math.random())+'test.xlsx'

//2,定义存储数据的

let exceldata = [];

let row = ['设备ID', '设备名称', '领用人', '产家', '存放地', '价格', '购买日期', '供货商']; //表属性

exceldata.push(row);

//console.log(dbdata.data)

for (let item of dbdata.data) {

  let arr = [];

  arr.push(item.deviceid);

  arr.push(item.devicename);

  arr.push(item.deviceuser);

  arr.push(item.manufacturer);

  arr.push(item.place);

  arr.push(item.price);

  arr.push(item.purchasedate);

  arr.push(item.supplier);

  exceldata.push(arr)

}

// console.log(exceldata)

//3,把数据保存到excel

var buffer = await xlsx.build([{

  name: excelname,

  data: exceldata

}]);

       代码第2行,采用随机数+test.xls方式生成excel名称,防止多次生成excel在存储中出现命名冲突,这里采用逐行数据写入exceldata,其中第5行写入excel第一样数据的title;代码第8-19行把每条记录转行成excel中的一行数据,代码22-25生成excel。

最后为了提供微信小程序用户下载,需要把生成的excel文件上传至云存储,代码如下:

1

2

3

4

await cloud.uploadFile({

    cloudPath: excelname,

    fileContent: buffer, //excel二进制文件

  })

详细云函数将数据库数据生成excel介绍见微信小程序云开发超详细实战攻略:https://item.jd.com/13038316.html

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值