IE下用JavaScript动态生成excel

<script>

// 这个代码可以大大减少IE下的当前页面的Excel导出工作量
// 如果不能正确执行, 请把当前站点加入可信站点并调低安全级 参考图片: IE添加可信站点.png
// 导出为Excel, 参数为 HTML 或者 表格代码, 如: "A\tB", xxx.innerHTML
function printToExcel(html) {
  try{
    var ExApp = new ActiveXObject("Excel.Application")
    var ExWBk = ExApp.workbooks.add()
    var ExWSh = ExWBk.worksheets(1)
    ExApp.DisplayAlerts = false
    ExApp.visible = true
  }catch(e){
    alert("您所设定的安全级别太高,或者您的电脑没有安装Microsoft Excel软件!")
    return false
  }
  window.clipboardData.setData("Text", html); 
  ExWBk.worksheets(1).Paste;
  ExWBk.worksheets(1).Columns.AutoFit;
  ExWBk.worksheets(1).Rows.AutoFit;
}
   // 将 HTML 表格导出为 Excel
  function   exportToExcel(table)   
  {
      if(confirm("确认要导出吗?")){
      //   Start   Excel   and   get   Application   object. 
      var   oXL   =   new   ActiveXObject("Excel.Application");   
      //   Get   a   new   workbook. 
      var   oWB   =   oXL.Workbooks.Add(); 
      var   oSheet   =   oWB.ActiveSheet;
      var   hang   =   table.rows.length;    
      var   lie   =   table.rows(0).cells.length;      
      //   Add   table   headers   going   cell   by   cell. 
      for   (i=0;i<hang;i++) 
      { 
      for   (j=0;j<lie;j++) 
      { 
      oSheet.Cells(i+1,j+1).Value   =   table.rows(i).cells(j).innerText; 
      }    
      } 
      oXL.Visible   =   true; 
      oXL.UserControl   =   true;      
      }
  }
//printToExcel("A\tB");
</script>
<!-- 以下为数据区 -->
<div id="dataArea">
<font color=red>2009年猪流感统计表</font>
    <table border="1"  cellpadding="0" style="border-collapse: collapse; " bordercolor="#000000">
<tbody><tr>
<td>&nbsp;<b>编号</b></td>
<td>&nbsp;<b>用户名</b></td></tr>
<tr>
<td>&nbsp;1</td>
<td>&nbsp;金正日</td></tr>
<tr>
<td>&nbsp;2</td>
<td>&nbsp;萨达姆</td></tr>
</tbody>

</table>

</div>
<script>
if(confirm("是否导出表格数据为 Excel?")) {
    printToExcel(dataArea.innerHTML);
}
</script>

 



BeanSoft 2009-04-29 19:09 发表评论

你可能感兴趣的:(JavaScript,Microsoft,Excel,IE,J#)