html代码:
<input id="Button_HTMLExcel" type="button" value="Excel导出" class="A"
onclick="javascript:return ExportExcel();" />
JS前端代码:
function ExportExcel()
{
IeAndGoogleExcel("TableContent");
}
function getExplorer() {
var explorer = window.navigator.userAgent ;
//ie
//if (explorer.indexOf("MSIE") >= 0) { ---只支持IE10以下版本
if (!!window.ActiveXObject || "ActiveXObject" in window){ //--支持IE6-IE11
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 IeAndGoogleExcel(tableid) {//整个表格拷贝到EXCEL中
if(getExplorer()=='ie')
{
AllAreaExcel(tableid);//只支持ie的导出方式
}
else
{
tableToExcel(tableid)//支持非ie浏览器的导出方法
}
}
function AllAreaExcel(stri)
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=parent.frames('iFrame_Result').document.body.createTextRange();
sel.moveToElementText(parent.frames('iFrame_Result').document.getElementById(stri));
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
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)
//table = parent.frames[1].document.getElementById('TableContent') //谷歌支持的获取同级iframe里面的tableid方式
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
window.location.href = uri + base64(format(template, ctx))
}
})()