IEの下でJavaScriptで動的にエクセルを生成する


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

 
 
ソース:http://www.blogjava.net/beansoft/archive/2009/04/29/268204.html
このコードがいいと思います.エクセルのActiveXコントロールを呼び出す時、そのtry-catchがとてもかっこいいです.