一、背景
前端上传execl到后端,解析execl数据存储在数据库中。前端查询数组,后端查询数据库并组合好数据返回前端,前端生成execl
二、技术点介绍:
1.ejsExcel是一款国人开发的、在Node.js应用程序中使用我们预先设置好的Excel模板导出Excel表格的模板引擎
安装ejsExcel
npm install ejsexcel
ejsExcel语法:
| Syntax | Description |
|---|---|
| data | data 为内置对象, 数据源 |
| <%forRow | 循环一行 |
| <%# | 输出动态公式 |
| <%~ | 输出数字类型格式 |
| <%= | 输出字符串 |
| <%forCell | 循环单元格 |
| <%forRBegin | 循环多行 |
| <%forCBegin | 循环多个单元格 |
| <%hideSheet()%> | 隐藏所在工作表 |
| <%showSheet()%> | 显示所在工作表 |
| <%deleteSheet()%> | 删除所在工作表 |
| <% %> | 内部可执行 任意 javascript,可以用 <%console.log(data)%> 打印临时变量到控制台,进行调试 |
2.util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。
安装util
npm install util
三、实现
1.设置Excel模板
例如:

2.获取到后台返回的数据
const ejsexcel = require("ejsexcel");
const fs = require("fs");
const util = require("util");
const readFileAsync = util.promisify(fs.readFile);
const writeFileAsync = util.promisify(fs.writeFile);
const utils = require('../utils/utils.js')
exports.getList = async function(req, res) {
let data = req._parsedOriginalUrl.search;
utils.ajaxGet(data, 后台url).then(async function(datas) {
//获得Excel模板的buffer对象
const _data = JSON.parse(datas)
const data = _data.data.items;
const exlBuf = await readFileAsync("./excel/down.xlsx");
//用数据源(对象)data渲染Excel模板
const exlBuf2 = await ejsexcel.renderExcel(exlBuf, data);
res.send({
code: 10000,
data: {
data: exlBuf2
}
})
});
}

本文介绍了一种前后端结合的方案,通过使用ejsExcel模板引擎,在Node.js环境中将数据库查询结果导出为Excel文件。文章详细解释了ejsExcel的安装和语法,演示了如何设置Excel模板,并通过后端获取数据,最终生成Excel文件。
993

被折叠的 条评论
为什么被折叠?



