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>