云函数中生成excel并且上传到云存储中

本文介绍如何在小程序云函数中利用excel-export库生成Excel文件,并将其上传到云存储。通过拉取数据,生成Excel流对象,然后上传到云存储,最后返回fileID。文章中分享了实现过程中的踩坑点,包括文件读取、配置对象设置、数据与表头对应等注意事项。
摘要由CSDN通过智能技术生成

云环境1.0.51

小程序的云开发功能为我们带来了很大的方便,于是就打算研究一下如何在云函数中拉取数据,之后生成excel到云存储中,过程中踩了些坑,这里分享给大家,希望能有所帮助。

首先了解一个node生成excel的库excel-export

虽然已经许久未更新了,但是目前还没有什么太大的问题,所以在他的基础上进行开发,并且上手也比较容易

主要用法
  1. 引入
let nodeExcel = require('excel-export');
  1. 创建配置对象
let conf = {
   
  stylesXmlFile, // 约束文件(不然生成的excel打开会报一些问题)
  cols,          // 可理解为表头  [{ caption: 'columnName', type: 'string' }], 这里出于方便,type为string,具体可移步其文档查看
  rows,          // 可以理解为填充的数据 ['wechat', 'mp']
}
  1. 创建流对象
let result = nodeExcel.execute(conf)
// 普通node后端可以直接使用 res.end(result, 'binary'); 进行下载,要记得添加相应的头,其文档里也有说明
// 最终可以使用 Buffer.from(result.toString(), 'binary') 转换为一个Buffer对象
嵌入云开发

大致的思路就是 [拉取数据] -> [生成excel流对象] -> [上传到云存储中] -> [返回该fileID]

几个踩坑点
  1. 读入文件要使用 path.resolve(__dirname, 'xxx')
  2. 得到excel流对象 使用 Buffer.from(result.toString(), 'binary') 再配合cloud.uploadFile
  3. 生成时conf要配置stylesXmlFile,不然打开文件总有个提示,很不爽!,styles.xml这个文件可以在node_modules/excel-export/example/styles.xml找到。
  4. 数据和表头最好是对应的,数据也可以存在空值
云函数目录结构
- testDownload
- |- index.js
- |- styles.xml
- |- package.json
- |- package-lock.json
- |- node_modules 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值