电商品牌授权网站,运营方案怎么做,做分销网站系统下载,我想投资谁有项目基于Node.js的后台管理系统的数据表格导出下载
今天在工作的时候接触到一个需求#xff0c;就是现在有一个简单的后台管理系统是基于node.js来实现的#xff0c;现在需要将其中的一个表格数据下载下来。乍一听还以为这个是一个简单的需求#xff0c;以为只要简单的一个小时…基于Node.js的后台管理系统的数据表格导出下载
今天在工作的时候接触到一个需求就是现在有一个简单的后台管理系统是基于node.js来实现的现在需要将其中的一个表格数据下载下来。乍一听还以为这个是一个简单的需求以为只要简单的一个小时就能完成没有想到直接花了我将近两个半小时并且还是在他人的帮助下实现的功能。下面就是具体的实现步骤
第一步引入依赖
最主要的是使用的node的库node-xlsx。 npm环境下 node-xslx npm install node-xlsx node.js中的fs模块 npm install fs
具体的引入代码 let fs require(fs); let xlsx require(node-xlsx);
第二步写sql语句查询需要下载的数据
app.get(/export, (req, res) {//生成Excel依赖包const xlsx require(node-xlsx);//写入文件依赖包var fs require(fs);const sql select * from student where delete_status0db.query(sql, async (err, results) {if (err) {return console.log(err.message)}// res.json(results);const dataList results.data;console.log(results,获取的dataList数据)let list [{name: sheet,data: [//第一列是作为表头先写死后面的数据通过循环push到这个数组中[购买人名称, 购买时间, 实际支付金额,兑换码,兑换码所属渠道/商家名称],],},];for (let i 0; i results.length; i){console.log(, results[i])let name results[i].namelet time results[i].timelet money results[i].moneylet code results[i].codelet business results[i].businesslet linshi [name, time, money, code, businessName]console.log(获取的新数组 : , linshi);list[0].data.push(linshi)console.log(写入的数据 : , list[0].data);}const buffer xlsx.build(list);fs.writeFile(详细数据.xlsx, buffer, function (err) {if (err) {console.log(err, 保存excel出错);} else {console.log(写入excel成功!!!);}});res.body buffer;//将返回的buffer作为一个流返回给前端res.set(Content-disposition, attachment; filenameencodeURIComponent(文娱卡售卡明细表).xlsx);res.set(Content-type, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);res.status(200).send(buffer)})
})这一步写完基本的数据就会写入到excel文件中并且将excel文件作为一个流直接返回给前端
第三步前端接收数据下载
前端页面添加一个按钮在按钮的点击事件中请求后台返回的excel表格数据 通过 window.open直接连接后台的接口数据访问后台返回过来的流下载进行展示
async daochu() {//这个console.log(window.ip : window.port /export)window.open(window.ip : window.port /export)},ip和port是主机id和请求端口是在前端规定好的可以选择写死也可以选择动态写入
以上就是基于node.js的后台管理系统的数据表格导出下载的实现全过程如果还有什么更好的方法可以一起沟通沟通