JS导出Excel(使用Blob),兼容IE,且保留样式

33 篇文章 0 订阅
17 篇文章 0 订阅

JS实现html导出Excel,兼容IE浏览器 

 

 

方法一:$("#tableID").first().tableToExcel();

------------------------------------------------------------------------------------------------------------------------------

方法二: 


     var tableHtml='<html><head><meta charset="UTF-8"></head><body>';
	 tableHtml += lHtml;
	 tableHtml += '</body></html>';
	 var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
	 var fileName = "变电设备"+dialogname+".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();
	 }

    //判断是否IE浏览器
    function isIE() {
		if (!!window.ActiveXObject || "ActiveXObject" in window) {
			return true;
		} else {
			return false;
		}
	} 

其中lHtml是 table的html代码,如:

var lHtml = "<table border='1' style='width: 750px;height: 242px; border:1px solid ;border-collapse: collapse;border-color:#000;background-color:white;' align='center'><tr style='border: 0px;'><td colspan='5' style='height: 50px;font-size:21px;text-align: center;border: 0px;font-weight: bold;'>设备XXXXX报告</td></tr></table>"

 

简单来说,IE浏览器用window.navigator.msSaveOrOpenBlob(excelBlob,fileName);

非IE用a标签


以下是个jsp例子,jsp效果图:

导出的Excel效果图:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/tags/mx-framework" prefix="mx" %>

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>html 表格导出道</title>
  <script language="JavaScript" type="text/javascript">
    
	//判断是否IE浏览器
    function isIE() {
		if (!!window.ActiveXObject || "ActiveXObject" in window) {
			return true;
		} else {
			return false;
		}
	} 
	
    function method() {
    	 var lHtml = document.getElementById("myDiv").innerHTML;
    	 var tableHtml='<html><head><meta charset="UTF-8"></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();
		}
     
    } 
  </script>
</head>
<body>
<div >
  <button type="button" onclick="method()">导出Excel兼容IE</button>
</div>
<div id="myDiv">
<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="5" align="center">html 表格导出道Excel</td>
  </tr>
  <tr style='background-color: #FFC000;text-align: center;'>
    <td>列标题1</td>
    <td>列标题2</td>
    <td>类标题3</td>
    <td>列标题4</td>
    <td>列标题5</td>
  </tr>
  <tr style='text-align: center;'>
    <td>aaa</td>
    <td>bbb</td>
    <td>ccc</td>
    <td>ddd</td>
    <td>eee</td>
  </tr>
  <tr style='text-align: center;'>
    <td>AAA</td>
    <td>BBB</td>
    <td>CCC</td>
    <td>DDD</td>
    <td>EEE</td>
  </tr>
  <tr style='text-align: center;'>
    <td>FFF</td>
    <td>GGG</td>
    <td>HHH</td>
    <td>III</td>
    <td>JJJ</td>
  </tr>
</table>
</div>
</body>
</html>

 

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值