- 注意:使用时需要了解模板接受的数据格式,并不是直接搞上去就可以了,凡是不是要有个吻合度吗。
* 从数据库中取出数据

- 大致处理后的数据格式为:

- 这些都准备好了你还得需要样东西,模板;
<%forRBegin rs,i in data[0]%>:开始循环;因为数据封装为
[
[{},{},{},{}.....]
];所以通过data[0],
即可取出所有数据,数组中套用数组;
<%forREnd%>:结束循环;
<%=rs.issue_name%>:通过你封装的key来取值; - 现在是代码部分 1. 加入ejsexcel var ejsexcel = require('ejsexcel'); var fs = require('fs'); 当然,使用之前需要你添加这个模块(npm install ejsexcel)
- ./* GET export excel test. 导出excel议题*/ router.get('/exportExcel', function (req, res, next) { var filedir = './public/uploadFile/temporaryFile/'; fs.ensureDir(filedir, function (err) { }); var meet_name = req.query.meet_name; try { //导出前判断要导出的文件是否存在,自己根据需求 fs.exists('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', function (r) { if (r) { fs.unlink('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', function (err) { if (err) throw err; }) } issueService.getIssueInfo(1, 10000, meet_name, function (result) { //查询数据 if (result.rows.length < 1) { //没有数据返回0页面获取判断返回值做出相应的提示 res.send("0"); } else { fs.ensureDir(filedir, function (err) {}); (async function () { var datas = []; var data = []; for (var i = 0; i < result.rows.length; i++) { /** 处理数据为上述格式 */ data.push(result.rows[i]); } datas.push(data); //获得Excel模板的buffer对象 const exlBuf = await readFileAsync('./public/uploadFile/template/issue.xlsx'); //用数据源(对象)data渲染Excel模板 const exlBuf2 = await ejsexcel.renderExcel(exlBuf, datas); await writeFileAsync('./public/uploadFile/temporaryFile/' + meet_name + '_议题报表.xlsx', exlBuf2); setTimeout(() => { console.info("删除议题"); try { fs.access('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx', fs.constants.F_OK, (err) => { if (!err) { fs.unlinkSync('./public/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx') } }); } catch (e) { console.info("异常"); console.error(e); } }, 5 * 60 * 1000); //返回生成的表格路径提供下载 res.send('/uploadFile/temporaryFile/' + meet_name + '_xxx.xlsx'); })(); } }); }); } catch (error) { //返回异常 res.send("err"); } }); 注:在任何时候,代码出现问题不要捉急,看一下错误提示是否是哪个模块没加,或者是引号问题等等,总之 新中越毛躁,解决问题所花费的时间越多
nodejs+express使用ejsexcel做复杂导出Excel
原创
©著作权归作者所有:来自51CTO博客作者老鼠欺负猫的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java Excel导入导出
Java的两种方式操作Excel
数据 java excel 导出数据 -
导出excel带图片
列表数据导出,带图片,图片为 http://xxxxx/1.jpg 这种如何处理图片就是重点相信这个图片,一定可以让大家明白图片的坐标位置的概念了。
excel spring boot 图片 hutool Image -
使用easyPoi导出excel(带图片)
springboot项目导出excel
导出excel 导入导出
















