JavaScript导出Excel实例详解
本文实例讲述了JavaScript导出Excel的方法。分享给大家供大家参考。具体实现方法如下:
<htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>WEB页面导出为EXCEL文档的方法</title> </head> <body> <tableid="tableExcel"width="100%"border="1"cellspacing="0"cellpadding="0"> <tr> <tdcolspan="5"align="center">WEB页面导出为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> <inputtype="button"onclick="javascript:method1('tableExcel');"value="第一种方法导入到EXCEL"> <inputtype="button"onclick="javascript:method2('tableExcel');"value="第二种方法导入到EXCEL"> <inputtype="button"onclick="javascript:getXlsFromTbl('tableExcel',null);"value="第三种方法导入到EXCEL"> <SCRIPTLANGUAGE="javascript"> functionmethod1(tableid){//整个表格拷贝到EXCEL中 varcurTbl=document.getElementByIdx_x_x(tableid); varoXL=newActiveXObject("Excel.Application"); //创建AX对象excel 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可见属性 } functionmethod2(tableid)//读取表格中每个单元到EXCEL中 { varcurTbl=document.getElementByIdx_x_x(tableid); varoXL=newActiveXObject("Excel.Application"); //创建AX对象excel varoWB=oXL.Workbooks.Add(); //获取workbook对象 varoSheet=oWB.ActiveSheet; //激活当前sheet 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; //设置excel可见属性 } functiongetXlsFromTbl(inTblId,inWindow){ try{ varallStr=""; varcurStr=""; //alert("getXlsFromTbl"); 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; //alert("getTblDatais"+inWindow); vartblDocument=document; if(!!inWindow&&inWindow!=""){ if(!document.all(inWindow)){ returnnull; } else{ tblDocument=eval_r(inWindow).document; } } varcurTbl=tbldocument.getElementByIdx_x_x(inTbl); varoutStr=""; if(curTbl!=null){ for(varj=0;j<curTbl.rows.length;j++){ //alert("jis"+j); for(vari=0;i<curTbl.rows[j].cells.length;i++){ //alert("iis"+i); if(i==0&&rows>0){ outStr+=" "; rows-=1; } outStr+=curTbl.rows[j].cells[i].innerText+""; if(curTbl.rows[j].cells[i].colSpan>1){ for(vark=0;k<curTbl.rows[j].cells[i].colSpan-1;k++){ outStr+=" "; } }
if(i==0){ if(rows==0&&curTbl.rows[j].cells[i].rowSpan>1){ rows=curTbl.rows[j].cells[i].rowSpan-1; } } } outStr+=""; } } 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="leo_zhang"+"_"+curYear+curMonth+curDate+"_" +curHour+curMinute+curSecond+".csv"; //alert(fileName); 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(); } </SCRIPT> </body> </html>