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> 该文章在 2010/8/18 0:00:09 编辑过 |
关键字查询
相关文章
正在查询... |