酒浓码浓 - JS导出Excel

JS导出Excel

首先笔者是用react,后台管理系统用到的,但是代码是JS原生的,重点是原理。

先要声明,一般统计筛选数据后,想把这个数据打印出来是后端做的事情,前端只需请求接口。 如果前端想做     只能打印出当前这页的数据 。 understand?

 

 给table上个class或id 以便找到

 执行事件,传入想打印的table名

 开始做一系列的事,然后通过location.href打开路径 实现下载。(方法有很多种)

 

代码:

exportExcel =tableid => event => {

this.tableDownload(tableid);

};

 

base64 =s => window.btoa(unescape(encodeURIComponent(s)));

 

format = (s,c)=> s.replace(/{(\w+)}/g, (m, p) => c[p]);

 

tableDownload = (table,name)=> {

const uri = 'data:application/vnd.ms-excel;base64,';

const template =

'<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>';

if (!table.nodeType) table = document.getElementsByClassName(table)[1];

const ctx = { worksheet: name || 'Worksheet', table: table.innerHTML };

window.location.href = uri + this.base64(this.format(template, ctx));

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值