把table表格导出为excel文件

<script type="text/javascript">
    	/* 	把html table表格导出为excle文件
    		使用方法:<a href="javaScript:tableExport('table_id')" id="export">导出Excel</a> 
    		table_id:要导出的table的id
    		export:导出的入口id
    		*/
	var idTmr;
	function getExplorer() {
		var explorer = window.navigator.userAgent;
		//ie
		if (explorer.indexOf("MSIE") >= 0) {
			return 'ie';
		}
		//firefox
		else if (explorer.indexOf("Firefox") >= 0) {
			return 'Firefox';
		}
		//Chrome
		else if (explorer.indexOf("Chrome") >= 0) {
			return 'Chrome';
		}
		//Opera
		else if (explorer.indexOf("Opera") >= 0) {
			return 'Opera';
		}
		//Safari
		else if (explorer.indexOf("Safari") >= 0) {
			return 'Safari';
		}
	}
	function tableExport(tableid) {
		if (getExplorer() == 'ie') {
			var curTbl = document.getElementById(tableid);
			var oXL = new ActiveXObject("Excel.Application");
			var oWB = oXL.Workbooks.Add();
			var xlsheet = oWB.Worksheets(1);
			var sel = document.body.createTextRange();
			sel.moveToElementText(curTbl);
			sel.select();
			sel.execCommand("Copy");
			xlsheet.Paste();
			oXL.Visible = true;

			try {
				var fname = oXL.Application.GetSaveAsFilename("Excel.xls",
						"Excel Spreadsheets (*.xls), *.xls");
			} catch (e) {
				print("Nested catch caught " + e);
			} finally {
				oWB.SaveAs(fname);
				oWB.Close(savechanges = false);
				oXL.Quit();
				oXL = null;
				idTmr = window.setInterval("Cleanup();", 1);
			}

		} else {
			tableToExcel(tableid)
		}
	}
	function Cleanup() {
		window.clearInterval(idTmr);
		CollectGarbage();
	}
	var tableToExcel = (function() {
		var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"'+
                            'xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'
				+ '<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>'
				+ '</x:ExcelWorkbook></xml><![endif]-->'
				+ ' <style type="text/css">'
				+ '.excelTable  {'
				+ 'border-collapse:collapse;'
				+ ' border:thin solid #999; '
				+ '}'
				+ '   .excelTable  th {'
				+ '   border: thin solid #999;'
				+ '  padding:20px;'
				+ '  text-align: center;'
				+ '  border-top: thin solid #999;'
				+ ' background-color: #E6E6E6;'
				+ ' }'
				+ ' .excelTable  td{'
				+ ' border:thin solid #999;'
				+ '  padding:2px 5px;'
				+ '  text-align: center;'
				+ ' }</style>'
				+ '</head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><body ><table class="excelTable">{table}</table></body></html>',
		//template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
		base64 = function(s) {
			return window.btoa(unescape(encodeURIComponent(s)))
		}, format = function(s, c) {
			return s.replace(/{(\w+)}/g, function(m, p) {
				return c[p];
			})
		}
		return function(table, name) {
			if (!table.nodeType)
				table = document.getElementById(table)
			var ctx = {
				worksheet : name || 'Worksheet',
				table : table.innerHTML
			};
			document.getElementById("export").href = uri
					+ base64(format(template, ctx));
			var date = new Date();
			var now_date = date.format("yyyy-MM-dd-hh-mm");
			document.getElementById("export").download = now_date;
		}
	})()
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值