可可果

哈利是一只有白点的黑狗

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  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>
posted on 2008-01-30 14:08  可可果  阅读(9176)  评论(2编辑  收藏  举报