基于Node.js的后台管理系统的数据表格导出下载

这篇具有很好参考价值的文章主要介绍了基于Node.js的后台管理系统的数据表格导出下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于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_status=0`
	db.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].name
			let time = results[i].time
			let money = results[i].money
			let code = results[i].code
			let business = results[i].business
			let 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; filename='+encodeURIComponent('文娱卡售卡明细表')+'.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的后台管理系统的数据表格导出下载的实现全过程,如果还有什么更好的方法,可以一起沟通沟通文章来源地址https://www.toymoban.com/news/detail-637195.html

到了这里,关于基于Node.js的后台管理系统的数据表格导出下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。

    目录 演示视频 基本介绍 功能结构 论文目录 系统截图 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。 系统中的功能模块主要是实现管理员和员工的管理; 管理员:个人中心、普通员工管理、办公文件管理、公共信

    2024年02月10日
    浏览(62)
  • 基于Springboot的旅游网管理系统后台

    旅游作为一种经济活动,已经成为世界经济中不可或缺的一部分。旅游业的快速发展,使得旅游产品和服务的供应和需求日益增加,其中旅游网站起着至关重要的作用。近年来,随着移动互联网的普及和技术的进步,旅游网站不断创新和发展,为旅游市场的发展贡献了巨大的

    2024年02月04日
    浏览(50)
  • 【vue后台管理系统】基于Vue+Element-UI+ECharts开发通用管理后台(中)

    点击菜单图标之前: 点击菜单图标之后: 首先我们要知道菜单栏的收缩,由el-menu的collapse属性控制: 我们通过分析可以知道: 菜单按钮的点击是在CommonHeader.vue组件中,而我们修改的collapse属性却在CommonAside.vue中,这是两个不同的组件。很明显这涉及到了组件间的通信问题,

    2024年02月03日
    浏览(50)
  • 基于小程序的社区超市管理系统+springboot后台管理源码和论文

    如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让管理模式进行升级,也为了更好的维护信息,社区超市管理系统的开发运用就显得很有必要。并且通过开发社区超市管理系统,不仅可以让所学的微信小程序技术得到实际运

    2024年01月21日
    浏览(55)
  • node.js+vue企业人事管理系统q731f

    中小企业人事管理系统的主要开发目标如下: (1)实现管理系统信息关系的系统化、规范化和自动化; (2)减少维护人员的工作量以及实现员工对信息的控制和管理。 (3)方便查询信息及管理信息等; (4)通过网络操作,改善处理问题的效率,提高操作人员利用率; (

    2024年02月10日
    浏览(51)
  • axios 实战进阶练习——基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台

    书接上回,上一篇文章介绍了一个基于 Vue3 和 ElementPlus 的联系人列表管理后台小 demo (Vue3 + ElementPlus实战学习——模拟简单的联系人列表管理后台),在有了上一篇文章的基础上,我们试着用 axios 来获取数据,而不是用写死的数据,然后用 Node.js + Vue3 + ElementPlus 来实现联系

    2024年02月10日
    浏览(60)
  • axios实战进阶练习——基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台

    书接上回,上一篇文章介绍了一个基于 Vue3 和 ElementPlus 的联系人列表管理后台小 demo (Vue3 + ElementPlus实战学习——模拟简单的联系人列表管理后台),在有了上一篇文章的基础上,我们试着用 axios 来获取数据,而不是用写死的数据,然后用 Node.js + Vue3 + ElementPlus 来实现联系

    2024年02月09日
    浏览(83)
  • 分享一个基于easyui前端框架开发的后台管理系统模板

    这是博主自己在使用的一套easyui前端框架的后台管理系统模版,包含了后端的Java代码,已经实现了菜单控制、权限控制功能,可以直接拿来使用。 springboot + mybatis + mybatis-plus实现的增删查改完整项目,前端使用了easyui前端框架。 https://gitee.com/he-yunlin/easyui-crud.git 目录 功能介

    2024年01月19日
    浏览(54)
  • 基于微信小程序的居住证申报系统+ssm后台管理系统

    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受 用户 的喜爱, 居住证申报系统 被 用户 普遍使用,为方便 用户 能够可以随时进行 居住证申报系统 的数据信息 管理 ,特

    2024年02月04日
    浏览(51)
  • 基于微信小程序的房屋租赁管理系统+ssm后台管理源码和论文

    基于微信小程序的房屋租赁管理系统的设计与实现 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于微信小程序的房屋租赁管理系统的开发全过程。通过分析基于微信小程序的房屋租赁管理系统管理的不足,创

    2024年01月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包