node生成execl

一、背景

前端上传execl到后端,解析execl数据存储在数据库中。前端查询数组,后端查询数据库并组合好数据返回前端,前端生成execl

二、技术点介绍:

1.ejsExcel是一款国人开发的、在Node.js应用程序中使用我们预先设置好的Excel模板导出Excel表格的模板引擎

安装ejsExcel

npm install ejsexcel

ejsExcel语法:

SyntaxDescription
datadata 为内置对象, 数据源
<%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
      }
    })
  });
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值