Javascript导出Excel的方法

本文介绍三种将网页上的表格数据导出至Excel的方法:直接拷贝整个表格、逐单元格读取数据以及通过文本形式导出。这些方法适用于不同场景下的数据处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. <SCRIPT LANGUAGE="javascript">   
  2.  function method1(tableid) {//整个表格拷贝到EXCEL中   
  3.      var curTbl = document.getElementById(tableid);   
  4.      var oXL = new ActiveXObject("Excel.Application");   
  5.      //创建AX对象excel   
  6.      var oWB = oXL.Workbooks.Add();   
  7.      //获取workbook对象   
  8.          var oSheet = oWB.ActiveSheet;   
  9.      //激活当前sheet   
  10.      var sel = document.body.createTextRange();   
  11.      sel.moveToElementText(curTbl);   
  12.      //把表格中的内容移到TextRange中   
  13.      sel.select();   
  14.      //全选TextRange中内容   
  15.      sel.execCommand("Copy");   
  16.      //复制TextRange中内容    
  17.      oSheet.Paste();   
  18.      //粘贴到活动的EXCEL中         
  19.      oXL.Visible = true;   
  20.      //设置excel可见属性   
  21.  }   
  22.  function method2(tableid) //读取表格中每个单元到EXCEL中   
  23.  {   
  24.      var curTbl = document.getElementById(tableid);   
  25.      var oXL = new ActiveXObject("Excel.Application");   
  26.      //创建AX对象excel   
  27.      var oWB = oXL.Workbooks.Add();   
  28.      //获取workbook对象   
  29.      var oSheet = oWB.ActiveSheet;   
  30.      //激活当前sheet   
  31.      var Lenr = curTbl.rows.length;   
  32.      //取得表格行数   
  33.      for (i = 0; i < Lenr; i++)   
  34.      {   
  35.          var Lenc = curTbl.rows(i).cells.length;   
  36.          //取得每行的列数   
  37.          for (j = 0; j < Lenc; j++)   
  38.          {   
  39.              oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;   
  40.              //赋值   
  41.          }   
  42.      }   
  43.      oXL.Visible = true;   
  44.      //设置excel可见属性   
  45.  }   
  46.  function getXlsFromTbl(inTblId, inWindow) {   
  47.      try {   
  48.          var allStr = "";   
  49.          var curStr = "";   
  50.          //alert("getXlsFromTbl");   
  51.          if (inTblId != null && inTblId != "" && inTblId != "null") {   
  52.              curStr = getTblData(inTblId, inWindow);   
  53.          }   
  54.          if (curStr != null) {   
  55.              allStr += curStr;   
  56.         }   
  57.         else {   
  58.             alert("你要导出的表不存在!");   
  59.             return;   
  60.         }   
  61.         var fileName = getExcelFileName();   
  62.         doFileExport(fileName, allStr);   
  63.     }   
  64.     catch(e) {   
  65.         alert("导出发生异常:" + e.name + "->" + e.description + "!");   
  66.     }   
  67. }   
  68. function getTblData(inTbl, inWindow) {   
  69.     var rows = 0;   
  70.     //alert("getTblData is " + inWindow);   
  71.     var tblDocument = document;   
  72.     if (!!inWindow && inWindow != "") {   
  73.         if (!document.all(inWindow)) {   
  74.             return null;   
  75.         }   
  76.         else {   
  77.             tblDocument = eval(inWindow).document;   
  78.         }   
  79.     }   
  80.     var curTbl = tblDocument.getElementById(inTbl);   
  81.     var outStr = "";   
  82.     if (curTbl != null) {   
  83.         for (var j = 0; j < curTbl.rows.length; j++) {   
  84.             //alert("j is " + j);   
  85.             for (var i = 0; i < curTbl.rows[j].cells.length; i++) {   
  86.                 //alert("i is " + i);   
  87.                 if (i == 0 && rows > 0) {   
  88.                     outStr += " \t";   
  89.                     rows -1;   
  90.                 }   
  91.                 outStr += curTbl.rows[j].cells[i].innerText + "\t";   
  92.                 if (curTbl.rows[j].cells[i].colSpan > 1) {   
  93.                     for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {   
  94.                         outStr += " \t";   
  95.                     }   
  96.                 }   
  97.                 if (i == 0) {   
  98.                     if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {   
  99.                         rows = curTbl.rows[j].cells[i].rowSpan - 1;   
  100.                     }   
  101.                 }   
  102.             }   
  103.             outStr += "\r\n";   
  104.         }   
  105.     }   
  106.     else {   
  107.         outStr = null;   
  108.         alert(inTbl + "不存在!");   
  109.     }   
  110.     return outStr;   
  111. }   
  112. function getExcelFileName() {   
  113.     var d = new Date();   
  114.     var curYear = d.getYear();   
  115.     var curMonth = "" + (d.getMonth() + 1);   
  116.     var curDate = "" + d.getDate();   
  117.     var curHour = "" + d.getHours();   
  118.     var curMinute = "" + d.getMinutes();   
  119.     var curSecond = "" + d.getSeconds();   
  120.     if (curMonth.length == 1) {   
  121.         curMonth = "0" + curMonth;   
  122.     }   
  123.     if (curDate.length == 1) {   
  124.         curDate = "0" + curDate;   
  125.     }   
  126.     if (curHour.length == 1) {   
  127.         curHour = "0" + curHour;   
  128.     }   
  129.     if (curMinute.length == 1) {   
  130.         curMinute = "0" + curMinute;   
  131.     }   
  132.     if (curSecond.length == 1) {   
  133.         curSecond = "0" + curSecond;   
  134.     }   
  135.     var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"   
  136.             + curHour + curMinute + curSecond + ".csv";   
  137.     //alert(fileName);   
  138.     return fileName;   
  139. }   
  140. function doFileExport(inName, inStr) {   
  141.     var xlsWin = null;   
  142.     if (!!document.all("glbHideFrm")) {   
  143.         xlsWin = glbHideFrm;   
  144.     }   
  145.     else {   
  146.         var width = 6;   
  147.         var height = 4;   
  148.         var openPara = "left=" + (window.screen.width / 2 - width / 2)   
  149.                 + ",top=" + (window.screen.height / 2 - height / 2)   
  150.                 + ",scrollbars=no,width=" + width + ",height=" + height;   
  151.         xlsWin = window.open("", "_blank", openPara);   
  152.     }   
  153.     xlsWin.document.write(inStr);   
  154.     xlsWin.document.close();   
  155.     xlsWin.document.execCommand('Saveas', true, inName);   
  156.     xlsWin.close();   
  157. }   
  158. </SCRIPT>   


<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"> 

<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> 
<tr>.....

说明第二种方法最好


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值