纯js实现下载功能【附上js代码】

纯js实现文件下载
以下是js文本,粘贴复制一键搞定:

function exportExcel(title){
	var type='xlsx';var tables=document.getElementsByTagName('table');
	var titleTable=tables[0];
if(titleTable==undefined){alert("未找到需要导出的数据");
return false}
var keyMap=[];for(var i=0;i<titleTable.rows[0].cells.length;i++){
keyMap.push(getTdText(titleTable.rows[0].cells[i]))}
var data=[];for(var k=0;k<tables.length;k++){
for(var i=0;i<tables[k].rows.length;i++){
var obj={};for(var j=0;j<keyMap.length;j++){
obj[keyMap[j]]=getTdText(tables[k].rows[i].cells[j])}data.push(obj)};}
var tmpdata=[];data.map((v,i)=>keyMap.map((k,j)=>Object.assign({},{
v:v[k],position:(j>25?getCharCol(j):String.fromCharCode(65+j))+(i+1)})))
.reduce((prev,next)=>prev.concat(next)).forEach((v,i)=>tmpdata[v.position]={v:v.v});
var outputPos=Object.keys(tmpdata);
var tmpWB={SheetNames:['mySheet'],Sheets:
{'mySheet':Object.assign({},tmpdata,{'!ref':outputPos[0]+':'+outputPos[outputPos.length-1]})}};
var tmpDown=new Blob([s2ab(XLSX.write(tmpWB,
{bookType:(type==undefined?'xlsx':type),bookSST:false,type:'binary'}))], {type:""});
var href=URL.createObjectURL(tmpDown);var aLink=document.createElement('a');
aLink.href=href;aLink.download=title==undefined?new Date().getTime():title+".xlsx";
aLink.style.display='none';document.body.appendChild(aLink);aLink.click();setTimeout(function()
{URL.revokeObjectURL(tmpDown)},100)}
function s2ab(s){var buf=new ArrayBuffer(s.length);var view=new Uint8Array(buf);
for(var i=0;i!=s.length;++i)view[i]=s.charCodeAt(i)&0xFF;return buf}function getCharCol(n)
{let temCol='',s='',m=0;while(n>0){m=n%26+1;s=String.fromCharCode(m+64)+s;n=(n-m)/26}return s}
function getTdText(node){var child=node.Children;if(child==undefined){return node.innerText;}
else{var text='';for(var i=0;i<child.length;i++){text+=getTdText(child[i]);}return text;}}

在这里插入图片描述
导出excel可由自己命名,填在方法里;

伙伴们,你们都学会了吗?

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug菌¹

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值