IEの下でJavaScriptで動的にエクセルを生成する
2905 ワード
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> <b> </b></td>
<td> <b> </b></td></tr>
<tr>
<td> 1</td>
<td> </td></tr>
<tr>
<td> 2</td>
<td> </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がとてもかっこいいです.