js實現html表格匯出到excel
//將table匯出到excel中
function exportToExcel(tableid){
var curTbl = document.getElementById(tableid);
var oXL;
try{
oXL = new ActiveXObject("Excel.Application"); //建立AX物件excel
}catch(e){
alert("無法啟動Excel!\n\n如果您確信您的電腦中已經安裝了Excel,"+"那麼請調整IE的安全級別。\n\n具體操作:\n\n"+"工具 → Internet選項 → 安全 → 自定義級別 → 對沒有標記為安全的ActiveX進行初始化和指令碼執行 → 啟用");
return false;
}
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可見屬性
var fname = oXL.Application.GetSaveAsFilename("將table匯出到excel
oWB.SaveAs(fname);
oWB.Close();
oXL.Quit();
}
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可見屬性
}
<input type="button" onclick="javascript:method1('TableExcel');" value="第一種方法匯入到EXCEL">
<input type="button" onclick="javascript:method2('TableExcel');" value="第二種方法匯入到EXCEL">