JS实现导出Excel的五种方法详解【附源码下载】
本文实例讲述了JS实现导出Excel的五种方法。分享给大家供大家参考,具体如下:
这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器(火狐,IE,Chrome,Opera,Safari)
html表格导出道 //第一种方法 functionmethod1(tableid){ varcurTbl=document.getElementById(tableid); varoXL=newActiveXObject("Excel.Application"); varoWB=oXL.Workbooks.Add(); varoSheet=oWB.ActiveSheet; varsel=document.body.createTextRange(); sel.moveToElementText(curTbl); sel.select(); sel.execCommand("Copy"); oSheet.Paste(); oXL.Visible=true; } //第二种方法 functionmethod2(tableid) { varcurTbl=document.getElementById(tableid); varoXL=newActiveXObject("Excel.Application"); varoWB=oXL.Workbooks.Add(); varoSheet=oWB.ActiveSheet; varLenr=curTbl.rows.length; for(i=0;i "+e.description+"!"); } } functiongetTblData(inTbl,inWindow){ varrows=0; vartblDocument=document; if(!!inWindow&&inWindow!=""){ if(!document.all(inWindow)){ returnnull; } else{ tblDocument=eval(inWindow).document; } } varcurTbl=tblDocument.getElementById(inTbl); varoutStr=""; if(curTbl!=null){ for(varj=0;j 0){ outStr+="t"; rows-=1; } outStr+=curTbl.rows[j].cells[i].innerText+"t"; if(curTbl.rows[j].cells[i].colSpan>1){ for(vark=0;k 1){ rows=curTbl.rows[j].cells[i].rowSpan-1; } } } outStr+="rn"; } } else{ outStr=null; alert(inTbl+"不存在!"); } returnoutStr; } functiongetExcelFileName(){ vard=newDate(); varcurYear=d.getYear(); varcurMonth=""+(d.getMonth()+1); varcurDate=""+d.getDate(); varcurHour=""+d.getHours(); varcurMinute=""+d.getMinutes(); varcurSecond=""+d.getSeconds(); if(curMonth.length==1){ curMonth="0"+curMonth; } if(curDate.length==1){ curDate="0"+curDate; } if(curHour.length==1){ curHour="0"+curHour; } if(curMinute.length==1){ curMinute="0"+curMinute; } if(curSecond.length==1){ curSecond="0"+curSecond; } varfileName="table"+"_"+curYear+curMonth+curDate+"_" +curHour+curMinute+curSecond+".csv"; returnfileName; } functiondoFileExport(inName,inStr){ varxlsWin=null; if(!!document.all("glbHideFrm")){ xlsWin=glbHideFrm; } else{ varwidth=6; varheight=4; varopenPara="left="+(window.screen.width/2-width/2) +",top="+(window.screen.height/2-height/2) +",scrollbars=no,width="+width+",height="+height; xlsWin=window.open("","_blank",openPara); } xlsWin.document.write(inStr); xlsWin.document.close(); xlsWin.document.execCommand('Saveas',true,inName); xlsWin.close(); } //第四种 functionmethod4(tableid){ varcurTbl=document.getElementById(tableid); varoXL; try{ oXL=newActiveXObject("Excel.Application");//创建AX对象excel }catch(e){ alert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。\n\n具体操作:\n\n"+"工具→Internet选项→安全→自定义级别→对没有标记为安全的ActiveX进行初始化和脚本运行→启用"); returnfalse; } varoWB=oXL.Workbooks.Add();//获取workbook对象 varoSheet=oWB.ActiveSheet;//激活当前sheet varsel=document.body.createTextRange(); sel.moveToElementText(curTbl);//把表格中的内容移到TextRange中 sel.select();//全选TextRange中内容 sel.execCommand("Copy");//复制TextRange中内容 oSheet.Paste();//粘贴到活动的EXCEL中 oXL.Visible=true;//设置excel可见属性 varfname=oXL.Application.GetSaveAsFilename("将table导出到excel.xls","ExcelSpreadsheets(*.xls),*.xls"); oWB.SaveAs(fname); oWB.Close(); oXL.Quit(); } //第五种方法 varidTmr; functiongetExplorer(){ varexplorer=window.navigator.userAgent; //ie if(explorer.indexOf("MSIE")>=0){ return'ie'; } //firefox elseif(explorer.indexOf("Firefox")>=0){ return'Firefox'; } //Chrome elseif(explorer.indexOf("Chrome")>=0){ return'Chrome'; } //Opera elseif(explorer.indexOf("Opera")>=0){ return'Opera'; } //Safari elseif(explorer.indexOf("Safari")>=0){ return'Safari'; } } functionmethod5(tableid){ if(getExplorer()=='ie') { varcurTbl=document.getElementById(tableid); varoXL=newActiveXObject("Excel.Application"); varoWB=oXL.Workbooks.Add(); varxlsheet=oWB.Worksheets(1); varsel=document.body.createTextRange(); sel.moveToElementText(curTbl); sel.select(); sel.execCommand("Copy"); xlsheet.Paste(); oXL.Visible=true; try{ varfname=oXL.Application.GetSaveAsFilename("Excel.xls","ExcelSpreadsheets(*.xls),*.xls"); }catch(e){ print("Nestedcatchcaught"+e); }finally{ oWB.SaveAs(fname); oWB.Close(savechanges=false); oXL.Quit(); oXL=null; idTmr=window.setInterval("Cleanup();",1); } } else { tableToExcel(tableid) } } functionCleanup(){ window.clearInterval(idTmr); CollectGarbage(); } vartableToExcel=(function(){ varuri='data:application/vnd.ms-excel;base64,', template=' {table}
', base64=function(s){returnwindow.btoa(unescape(encodeURIComponent(s)))}, format=function(s,c){ returns.replace(/{(\w+)}/g, function(m,p){returnc[p];})} returnfunction(table,name){ if(!table.nodeType)table=document.getElementById(table) varctx={worksheet:name||'Worksheet',table:table.innerHTML} window.location.href=uri+base64(format(template,ctx)) } })()导出Excel方法一 导出Excel方法二 导出Excel方法三 导出Excel方法四 导出Excel方法五 html表格导出道Excel 列标题1 列标题2 类标题3 列标题4 列标题5 aaa bbb ccc ddd eee AAA BBB CCC DDD EEE FFF GGG HHH III JJJ