今天遇到一个需要用JS导出Excel的功能,百度了一下,有很多种方法,这里总结了五种,推荐给大家。
这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器(火狐,IE,Chrome,Opera,Safari)。
以下是代码:
<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>html表格导出道</title><scriptlanguage="JavaScript"type="text/javascript">//第一种方法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<Lenr;i++){varLenc=curTbl.rows(i).cells.length;for(j=0;j<Lenc;j++){oSheet.Cells(i+1,j+1).value=curTbl.rows(i).cells(j).innerText;}}oXL.Visible=true;}//第三种方法functiongetXlsFromTbl(inTblId,inWindow){try{varallStr="";varcurStr="";if(inTblId!=null&&inTblId!=""&&inTblId!="null"){curStr=getTblData(inTblId,inWindow);}if(curStr!=null){allStr+=curStr;}else{alert("你要导出的表不存在");return;}varfileName=getExcelFileName();doFileExport(fileName,allStr);}catch(e){alert("导出发生异常:"+e.name+"->"+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<curTbl.rows.length;j++){for(vari=0;i<curTbl.rows[j].cells.length;i++){if(i==0&&rows>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<curTbl.rows[j].cells[i].colSpan-1;k++){outStr+="t";}}if(i==0){if(rows==0&&curTbl.rows[j].cells[i].rowSpan>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;//激活当前sheetvarsel=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;//ieif(explorer.indexOf("MSIE")>=0){return'ie';}//firefoxelseif(explorer.indexOf("Firefox")>=0){return'Firefox';}//Chromeelseif(explorer.indexOf("Chrome")>=0){return'Chrome';}//Operaelseif(explorer.indexOf("Opera")>=0){return'Opera';}//Safarielseif(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='<html><head><metacharset="UTF-8"></head><body><table>{table}</table></body></html>',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))}})()</script></head><body><div><buttontype="button"onclick="method1('tableExcel')">导出Excel方法一</button><buttontype="button"onclick="method2('tableExcel')">导出Excel方法二</button><buttontype="button"onclick="getXlsFromTbl('tableExcel','myDiv')">导出Excel方法三</button><buttontype="button"onclick="method4('tableExcel')">导出Excel方法四</button><buttontype="button"onclick="method5('tableExcel')">导出Excel方法五</button></div><divid="myDiv"><tableid="tableExcel"width="100%"border="1"cellspacing="0"cellpadding="0"><tr><tdcolspan="5">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>
产品猿社区致力收录更多优质的商业产品,给服务商以及软件采购客户提供更多优质的软件产品,帮助开发者变现来实现多方共赢;
日常运营的过程中我们难免会遇到各种版权纠纷等问题,如果您在社区内发现有您的产品未经您授权而被用户提供下载或使用,您可按照我们投诉流程处理,点我投诉;
本文来自用户发布投稿,不代表产品猿立场 ;若对此文有疑问或内容有严重错误,可联系平台客服反馈;
部分产品是用户投稿,可能本文没有提供官方下下载地址或教程,若您看到的内容没有下载入口,您可以在我们产品园商城搜索看开发者是否有发布商品;若您是开发者,也诚邀您入驻商城平台发布的产品,地址:点我进入;
如若转载,请注明出处:https://www.chanpinyuan.cn/31990.html;