Javascript导出Excel的方法

1 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >  
  3 < html  xmlns ="http://www.w3.org/1999/xhtml" >  
  4 < head >  
  5      < meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" />  
  6      < title > WEB页面导出为EXCEL文档的方法 </ title >  
  7 </ head >  
  8 < body >  
  9 < table  id ="tableExcel"  width ="100%"  border ="1"  cellspacing ="0"  cellpadding ="0" >  
 10      < tr >  
 11          < td  colspan ="5"  align ="center" > WEB页面导出为EXCEL文档的方法 </ td >  
 12      </ tr >  
 13      < tr >  
 14          < td > 列标题1 </ td >  
 15          < td > 列标题2 </ td >  
 16          < td > 列标题3 </ td >  
 17          < td > 列标题4 </ td >  
 18          < td > 列标题5 </ td >  
 19      </ tr >  
 20      < tr >  
 21          < td > aaa </ td >  
 22          < td > bbb </ td >  
 23          < td > ccc </ td >  
 24          < td > ddd </ td >  
 25          < td > eee </ td >  
 26      </ tr >  
 27      < tr >  
 28          < td > AAA </ td >  
 29          < td > BBB </ td >  
 30          < td > CCC </ td >  
 31          < td > DDD </ td >  
 32          < td > EEE </ td >  
 33      </ tr >  
 34      < tr >  
 35          < td > FFF </ td >  
 36          < td > GGG </ td >  
 37          < td > HHH </ td >  
 38          < td > III </ td >  
 39          < td > JJJ </ td >  
 40      </ tr >   
 41 </ table >  
 42 < input  type ="button"  onclick ="javascript:method1('tableExcel');"  value ="第一种方法导入到EXCEL" >  
 43 < input  type ="button"  onclick ="javascript:method2('tableExcel');"  value ="第二种方法导入到EXCEL" >  
 44 < input  type ="button"  onclick ="javascript:getXlsFromTbl('tableExcel',null);"  value ="第三种方法导入到EXCEL" >  
 45 < SCRIPT  LANGUAGE ="javascript" >  
 46function method1(tableid) {//整个表格拷贝到EXCEL中 
 47    var curTbl = document.getElementById(tableid); 
 48    var oXL = new ActiveXObject("Excel.Application"); 
 49    //创建AX对象excel 
 50    var oWB = oXL.Workbooks.Add(); 
 51    //获取workbook对象 
 52        var oSheet = oWB.ActiveSheet; 
 53    //激活当前sheet 
 54    var sel = document.body.createTextRange(); 
 55    sel.moveToElementText(curTbl); 
 56    //把表格中的内容移到TextRange中 
 57    sel.select(); 
 58    //全选TextRange中内容 
 59    sel.execCommand("Copy"); 
 60    //复制TextRange中内容  
 61    oSheet.Paste(); 
 62    //粘贴到活动的EXCEL中       
 63    oXL.Visible = true
 64    //设置excel可见属性 
 65}
 
 66function method2(tableid) //读取表格中每个单元到EXCEL中 
 67
 68    var curTbl = document.getElementById(tableid); 
 69    var oXL = new ActiveXObject("Excel.Application"); 
 70    //创建AX对象excel 
 71    var oWB = oXL.Workbooks.Add(); 
 72    //获取workbook对象 
 73    var oSheet = oWB.ActiveSheet; 
 74    //激活当前sheet 
 75    var Lenr = curTbl.rows.length; 
 76    //取得表格行数 
 77    for (i = 0; i < Lenr; i++
 78    
 79        var Lenc = curTbl.rows(i).cells.length; 
 80        //取得每行的列数 
 81        for (j = 0; j < Lenc; j++
 82        
 83            oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; 
 84            //赋值 
 85        }
 
 86    }
 
 87    oXL.Visible = true
 88    //设置excel可见属性 
 89}
 
 90function getXlsFromTbl(inTblId, inWindow) 
 91    try 
 92        var allStr = ""
 93        var curStr = ""
 94        //alert("getXlsFromTbl"); 
 95        if (inTblId != null && inTblId != "" && inTblId != "null"
 96            curStr = getTblData(inTblId, inWindow); 
 97        }
 
 98        if (curStr != null
 99            allStr += curStr; 
100        }
 
101        else 
102            alert("你要导出的表不存在!"); 
103            return
104        }
 
105        var fileName = getExcelFileName(); 
106        doFileExport(fileName, allStr); 
107    }
 
108    catch(e) 
109        alert("导出发生异常:" + e.name + "->" + e.description + "!"); 
110    }
 
111}
 
112function getTblData(inTbl, inWindow) 
113    var rows = 0
114    //alert("getTblData is " + inWindow); 
115    var tblDocument = document; 
116    if (!!inWindow && inWindow != ""
117        if (!document.all(inWindow)) 
118            return null
119        }
 
120        else 
121            tblDocument = eval(inWindow).document; 
122        }
 
123    }
 
124    var curTbl = tblDocument.getElementById(inTbl); 
125    var outStr = ""
126    if (curTbl != null
127        for (var j = 0; j < curTbl.rows.length; j++
128            //alert("j is " + j); 
129            for (var i = 0; i < curTbl.rows[j].cells.length; i++
130                //alert("i is " + i); 
131                if (i == 0 && rows > 0
132                    outStr += " \t"
133                    rows -= 1
134                }
 
135                outStr += curTbl.rows[j].cells[i].innerText + "\t"
136                if (curTbl.rows[j].cells[i].colSpan > 1
137                    for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++
138                        outStr += " \t"
139                    }
 
140                }
 
141                if (i == 0
142                    if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1
143                        rows = curTbl.rows[j].cells[i].rowSpan - 1
144                    }
 
145                }
 
146            }
 
147            outStr += "\r\n"
148        }
 
149    }
 
150    else 
151        outStr = null
152        alert(inTbl + "不存在!"); 
153    }
 
154    return outStr; 
155}
 
156function getExcelFileName() 
157    var d = new Date(); 
158    var curYear = d.getYear(); 
159    var curMonth = "" + (d.getMonth() + 1); 
160    var curDate = "" + d.getDate(); 
161    var curHour = "" + d.getHours(); 
162    var curMinute = "" + d.getMinutes(); 
163    var curSecond = "" + d.getSeconds(); 
164    if (curMonth.length == 1
165        curMonth = "0" + curMonth; 
166    }
 
167    if (curDate.length == 1
168        curDate = "0" + curDate; 
169    }
 
170    if (curHour.length == 1
171        curHour = "0" + curHour; 
172    }
 
173    if (curMinute.length == 1
174        curMinute = "0" + curMinute; 
175    }
 
176    if (curSecond.length == 1
177        curSecond = "0" + curSecond; 
178    }
 
179    var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_" 
180            + curHour + curMinute + curSecond + ".csv"
181    //alert(fileName); 
182    return fileName; 
183}
 
184function doFileExport(inName, inStr) 
185    var xlsWin = null
186    if (!!document.all("glbHideFrm")) 
187        xlsWin = glbHideFrm; 
188    }
 
189    else 
190        var width = 6
191        var height = 4
192        var openPara = "left=" + (window.screen.width / 2 - width / 2
193                + ",top=" + (window.screen.height / 2 - height / 2
194                + ",scrollbars=no,width=" + width + ",height=" + height; 
195        xlsWin = window.open("""_blank", openPara); 
196    }
 
197    xlsWin.document.write(inStr); 
198    xlsWin.document.close(); 
199    xlsWin.document.execCommand('Saveas'true, inName); 
200    xlsWin.close(); 
201}
 
202
</ SCRIPT >  
203 </ body >  
204 </ html >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值