首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

适用导出:JavaScript (JS)操作web页面导出为Excle示例

2012-08-14 
实用导出:JavaScript (JS)操作web页面导出为Excle示例实用导出:JavaScript (JS)操作web页面导出为Excle示

实用导出:JavaScript (JS)操作web页面导出为Excle示例

实用导出:JavaScript (JS)操作web页面导出为Excle示例

?

在日常的开发中,经常会遇到一些报表导出,这里有一个简单的页面导出!

不过有一点,要对IE的ActiveX进行设置,具体的写在源码,文档里了!可以进行下载。

<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">      <tr>          <td colspan="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> 

?

按钮:

<input type="button" onclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL"> <input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"> <input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"> 

以下是三个按钮对应的JS函数:

? 函数1:

function method1(tableid) {//整个表格拷贝到EXCEL中     var curTbl = document.getElementById(tableid);     var oXL = new ActiveXObject("Excel.Application");     //创建AX对象excel     var oWB = oXL.Workbooks.Add();     //获取workbook对象         var oSheet = oWB.ActiveSheet;    //激活当前sheet     var sel = document.body.createTextRange();    sel.moveToElementText(curTbl);    //把表格中的内容移到TextRange中     sel.select();     //全选TextRange中内容     sel.execCommand("Copy");     //复制TextRange中内容      oSheet.Paste();     //粘贴到活动的EXCEL中           oXL.Visible = true;     //设置excel可见属性 } function method2(tableid) //读取表格中每个单元到EXCEL中 {     var curTbl = document.getElementById(tableid);     var oXL = new ActiveXObject("Excel.Application");     //创建AX对象excel     var oWB = oXL.Workbooks.Add();     //获取workbook对象    var oSheet = oWB.ActiveSheet;    //激活当前sheet     var Lenr = curTbl.rows.length;     //取得表格行数     for (i = 0; i < Lenr; i++)     {         var Lenc = 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可见属性 } function getXlsFromTbl(inTblId, inWindow) {     try {         var allStr = "";         var curStr = "";         //alert("getXlsFromTbl");         if (inTblId != null && inTblId != "" && inTblId != "null") {             curStr = getTblData(inTblId, inWindow);         }         if (curStr != null) {             allStr += curStr;         }         else {             alert("你要导出的表不存在!");             return;         }         var fileName = getExcelFileName();         doFileExport(fileName, allStr);     }     catch(e) {         alert("导出发生异常:" + e.name + "->" + e.description + "!");     } } function getTblData(inTbl, inWindow) {     var rows = 0;     //alert("getTblData is " + inWindow);     var tblDocument = document;     if (!!inWindow && inWindow != "") {         if (!document.all(inWindow)) {             return null;         }         else {             tblDocument = eval(inWindow).document;         }     }     var curTbl = tblDocument.getElementById(inTbl);     var outStr = "";     if (curTbl != null) {         for (var j = 0; j < curTbl.rows.length; j++) {             //alert("j is " + j);             for (var i = 0; i < curTbl.rows[j].cells.length; i++) {                 //alert("i is " + i);                 if (i == 0 && rows > 0) {                     outStr += " \t";                     rows -= 1;                 }                 outStr += curTbl.rows[j].cells[i].innerText + "\t";                 if (curTbl.rows[j].cells[i].colSpan > 1) {                     for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {                         outStr += " \t";                     }                 }                 if (i == 0) {                     if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {                         rows = curTbl.rows[j].cells[i].rowSpan - 1;                     }                 }             }             outStr += "\r\n";         }     }     else {         outStr = null;         alert(inTbl + "不存在!");     }     return outStr; } function getExcelFileName() {     var d = new Date();     var curYear = d.getYear();     var curMonth = "" + (d.getMonth() + 1);     var curDate = "" + d.getDate();     var curHour = "" + d.getHours();     var curMinute = "" + d.getMinutes();     var curSecond = "" + 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;     }     var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"             + curHour + curMinute + curSecond + ".csv";     //alert(fileName);     return fileName; } function doFileExport(inName, inStr) {     var xlsWin = null;     if (!!document.all("glbHideFrm")) {         xlsWin = glbHideFrm;     }     else {         var width = 6;         var height = 4;         var openPara = "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(); } 

??以下是源码下载:

?

热点排行