```<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>html 表格導出Excel</title>
</head>
<body>
<div >
<button onclick="method('tableExcel')">表格導出Excel</button>
<button onclick="jsonMethod()">json導出Excel</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><td>列標題1</td><td>列標題2</td><td>類標題3</td><td>列標題4</td><td>列標題5</td></tr>
<tr><td>aaa</td><td>bbb</td><td>ccc</td><td>ddd</td><td>eee</td></tr>
<tr><td>AAA</td><td>BBB</td><td>CCC</td><td>DDD</td><td>EEE</td></tr>
<tr><td>FFF</td><td>GGG</td><td>HHH</td><td>III</td><td>JJJ</td></tr>
</table>
</div>
</body>
</html>
<script language="JavaScript" type="text/javascript">
//---------------------------將JSON導出Excel---------------------------//javascript
//須要進行數據轉換,html
// 咱們使用ajax請求到的數據前端
var data = [{name:"hjm100",duty:'管理員',opensource:'http://git.oschina.net/hjm100',aa:'無用數據'},
{name:"zmjie100",duty:'前端開發',opensource:'http://git.oschina.net/zmjie100',aa:'無用數據'},
{name:"ghf100",duty:'前端開發',opensource:'http://git.oschina.net/ghf100',aa:'無用數據'},
{name:"zhengshanshan",duty:'前端開發',opensource:'http://git.oschina.net/zhengshanshan',aa:'無用數據'}];
//數據處理
var title = [{"value":"名稱",key:'name'},
{"value":"職務",key:'duty'},
{"value":"開源地址",key:'opensource'}];java
/**dataSwitch函數參數node
//JSONToExcelConvertor函數須要的數據格式
// var datas = {"title":[{"value":"店鋪"},{"value":"點擊量"},{"value":"競爭力"}],
// "data":[[{"value":"運營淘寶代",}, {"value":3057},{"value":955}],
// [{"value":"淘寶網",}, {"value":412},{"value":1860}]]
// };git
//空殼函數用來作調用,與方便理解!!
function jsonMethod(){
//執行導出函數
JSONToExcelConvertor(dataSwitch(data,title), "鴻基夢", title,'鴻基夢組織重要成員信息彙總');
}ajax
/**JSONToExcelConvertor函數參數json
//---------------------------將表格導出Excel---------------------------//
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 method(tableid){ //整個表格拷貝到EXCEL中
if(getExplorer()=='ie'){
var curTbl = document.getElementById(tableid),
oXL = new ActiveXObject("Excel.Application"),
//建立AX對象excel
oWB = oXL.Workbooks.Add(),
//獲取workbook對象
xlsheet = oWB.Worksheets(1),
//激活當前sheet
sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的內容移到TextRange中
sel.select();
//全選TextRange中內容
sel.execCommand("Copy");
//複製TextRange中內容
xlsheet.Paste();
//粘貼到活動的EXCEL中
oXL.Visible = true;
//設置excel可見屬性
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)
}
oXL.worksheets(1).Paste;
}瀏覽器
//兼容ie以外瀏覽器
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
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}
window.location.href = uri + base64(format(template, ctx))
}
})()
</script>app
```