使用node-xlsx+express插件生成excel文件并下载到本地

	const xlsx = require('node-xlsx');
		  express = require('express');
		  fs = require('fs');
		  router = express.Router(),
		  path = require("path")
		  //以上引入的工具都需要先在项目中安装
	router.get('/export', (req, res, next) => {
		  //定义表格中的数据
	let datas = [['表头1','表头2','表头2'],['表头1下对应的数据','表头2下对应的数据','表头3下对应的数据']]
});
	//定义每列的宽度
	const options = {'!cols': [{wch: 20}, {wch: 10}, {wch: 10}]};
	var buffer = xlsx.build([{name:"Excel",data:datas}]);
	let excelPath = path.resolve(__dirnam,'../../生成表格存储路径/存入的名字.xlsx'
	fs.writeFile(excelPath ,(err) => {
	if(!err){
		//download 参数1 文件路径 参数2 文件名称 参数3 回调函数
		res.download(excelPath ,'下载之后的名字.xlsx', (err){
			if(!err){
				//下载完成之后删除存在项目中的文件
				fs.unlinkSync(excelPath )
			}else{
				consoel.log('下载失败')
			}
		})
		}else{
			console.log("生成文件失败!")
		}
}))

前端页面通过window.location.href = '/export '调取下接口即可生成文件,通过前端页面还以传参给export接口,接口通过req.query拿到参数


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值