nodejs导出excel

本文介绍了一种使用Node.js从数据库中获取数据并将其转换为Excel报表的方法。通过封装一个函数,可以轻松地将查询结果导出为.xls文件格式,并提供自定义样式和表头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司项目需要导出excel报表,封装nodejs一个方法,

查找数据库后直接调用这个方法,传入查到的数据和herder表头,th数据


/* 下载excel
* data = [{name:'aa',age:'22'},{name:'bb',age:'60岁'}]; //数据
* header = [{name:'姓名'},{age:'年龄'}]; //th
* downloadExcel(res,header, arr, 'demo');
* */
function downloadExcel(res, header, data, fileName) {
let content = '<style>tr,td{border:1px solid gray;text-align: left;}</style><table><tr>'; //可以修饰样式
let field = {}, keys = [];
fileName = fileName || 'download';
for (let i = 0, len = header.length; i < len; i++) {
for (let key in header[i]) {
field[key] = header[i][key];
keys.push(key);
}
}
for (let key in field) {
content += '<td>'+field[key]+'</td>';
}
content += '</tr>';
for (var i = 0, len = data.length; i < len; i++) {
content += '<tr>';
for (var j = 0, len2 = keys.length; j < len2; j++) {
// if(keys[j] == 'Birth_Date'){
// console.log(data[i][keys[j]])
// } //这里可以处理数据
content += '<td>'+data[i][keys[j]]+'</td>';
}
content += '</tr>';
}
content += '</table>';
let buffer = new Buffer(content);
let iconv = require('iconv-lite');
let str = iconv.encode(buffer, 'utf8');
res.set({
'Content-Type': 'application/vnd.ms-execl',
'Content-Disposition': "attachment;filename=" + encodeURIComponent(fileName + '.xls'),
'Pragma': 'no-cache',
'Expires': 0
});
res.send(str);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值