JS前端将table导出到excel 兼容谷歌 IE 且保留表格样式

CDSN上博主给我一段代码,可将表格导出为EXCEL文档,原文见:

https://blog.csdn.net/zz210891470/article/details/94717644

向博主学习、致敬。

只是原文中缺少了isIE()函数,补充进去后,运行成功。但似乎导出的EXCEL文档并没有如原文所说的那样格式不变(拥挤在一个单元格大小的空间中)。作为借鉴学习记录下来,后面调试中试用。


function exportExcel(){
//tb是div 里面包着 table,这里就是取出table的html
var lHtml = document.getElementById("tb").innerHTML;
//这里重新组成一个你需要的文档,记得要将你需要的table样式复制写入到head头部里否则
//导出来没有表格样式 下面style标签里就是我自定义的表格样式
var tableHtml='<html><head><meta charset="UTF-8"><style>table{border-top:solid 1px #000; border-left:solid 1px #000;} td{height:25px;line-height:25px; font-size:12px; font-family:"宋体"; text-align:center; border-bottom:solid 1px #000; border-right:solid 1px #000;} #tab td{height:25px;line-height:25px; font-size:12px; font-family:"宋体";width: 82px;border-left:0px; border-bottom:solid 1px #000; border-right:solid 1px #000;} </style></head><body>';
tableHtml += lHtml;
tableHtml += '</body></html>';
var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
var fileName = "EXCEL.xls";
if(isIE()){
    window.navigator.msSaveOrOpenBlob(excelBlob,fileName);
  }else{
    var oa = document.createElement('a');
    oa.href = URL.createObjectURL(excelBlob);
    oa.download = fileName;
    document.body.appendChild(oa);
    oa.click();
  }
}

 
function isIE(){
  return navigator.userAgent.toUpperCase().indexOf("MSIE")==-1?false:true;
}

 

posted @ 2019-11-11 14:42  nxmxl  阅读(766)  评论(0编辑  收藏  举报