作者:知晓云 - 小程序开发快人一步
来源:知晓课堂
在日常的工作中,常常需要根据运营需求对数据进行各种格式的处理和导出。导出后,不少人偏爱将数据放入 excel在进行处理。
一般来说,处理数据导出时需要对数据进行一些运算整理。在以前,处理的方式是在一台独立的服务器上跑脚本。
而现在有了知晓云,不再需要维护服务器,直接写代码就能把相关事都都丢给云函数。 本文将介绍通过知晓云云函数来实现将数据表导出为 excel 文件的功能,并使用 webpack 和 mincloud 将代码打包上传到知晓云。
技术栈:
- 打包工具:webpack@4.22.0
- 部署工具:mincloud@1.0.4
- Excel 处理:node-xlsx@0.14.1
- 其他:知晓云 SDK
一、项目搭建
项目文件结构:
export-excel-file
├── index.js
├── package.json
├── src
│ └── index.js
├── webpack.config.js
└── yarn.lock
项目搭建与云函数代码打包示例文档基本一致。项目搭建好后,还需要安装以下依赖(两种安装方式选其一即可):
// 使用 yarn 安装
yarn add node-xlsx mincloud
// 使用 npm 安装
npm install --save node-xlsx minclou `
修改 deploy 脚本,如下:
// package.json
...
"scripts": { "build": "webpack --mode production",
"predeploy": "npm run build",
"deploy": "mincloud deploy export-excel-file ../"
},
...
最终我们会使用以下两个命令来部署和测试:
npm run deploy // 部署到知晓云
mincloud invoke export-excel-file // 测试已经部署到知晓云上的云函数
二、将数据表导出为 excel 文件
我们需要准备两张表:
- order: 订单表 (新建字段:name, price)
- export_task:导出任务记录表 (新建字段:file_download_link)
知晓云的云函数调用有同步和异步两种方式,同步调用的最大超时时间为 5 s,异步调用的则为 300 s。
假定 order 订单表有十万条数据,由于知晓云单次拉取数据的最大限制为 1000 条,所以需要分批获取数据,加上后续可能需要对数据进行处理,所花费的时间将会超过 5 s,因此对该云函数的调用将采用异步的方式。这时候就需要 export_task 导出任务记录表来对导出任务进行管理了。
export_tas