萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 電腦入門

JavaScript 將網頁表格資料匯出為 Excel 檔案的完整範例代碼

本文提供一段可直接使用的 JavaScript 函數,透過 ActiveXObject 啟動 Excel 應用程式,將網頁上指定表格(如 GridView)的資料逐欄寫入新建的 Excel 活頁簿,並自動設定標題與欄位名稱。適用於僅支援 IE 瀏覽器且已調整 ActiveX 安全性設定的企業內部系統。

完整函數代碼

function AutomateExcel() {
    try {
        var oXL;
        try {
            oXL = new ActiveXObject("Excel.Application");
        } catch (e) {
            alert("無法啟動 Excel!\n\n若確定電腦已安裝 Excel,請調整 IE 安全等級:\n工具 → 網際網路選項 → 安全性 → 自訂等級 → 對未標示為安全的 ActiveX 控制項初始化並指令碼執行 → 啟用");
            return false;
        }

        var oWB = oXL.Workbooks.Add();
        var oSheet = oWB.ActiveSheet;
        var table = $("#GridView1")[0];
        var rows = table.rows;
        var columns = table.rows(0).cells;

        // 設定活頁簿與工作表標題
        var name = "第 <%= _CurrentPage %> 頁";
        oXL.Caption = name;
        oSheet.Name = name;

        // 寫入欄位標題(依實際需求調整)
        oSheet.Cells(1, 1).Value = "申請單編號";
        oSheet.Cells(1, 2).Value = "出貨金額";
        oSheet.Cells(1, 3).Value = "行銷部門";
        oSheet.Cells(1, 4).Value = "業務人員";
        oSheet.Cells(1, 5).Value = "內部合約號";
        oSheet.Cells(1, 6).Value = "客戶名稱";
        oSheet.Cells(1, 7).Value = "幣別";
        oSheet.Cells(1, 8).Value = "客戶船期";
        oSheet.Cells(1, 9).Value = "國別";
        oSheet.Cells(1, 10).Value = "核銷單號";
        oSheet.Cells(1, 11).Value = "發票號碼";
        oSheet.Cells(1, 12).Value = "報關日期";

        // 後續可續寫將 rows 資料逐列寫入 oSheet
        // ...
    } catch (err) {
        console.error("匯出失敗:", err);
    }
}

使用說明

  • 需在 IE 瀏覽器中執行,並將目標網站加入「信任的網站」且啟用 ActiveX 控制項。
  • 表格 ID 需與程式碼中的 #GridView1 一致,或自行修改選取器。
  • 標題陣列請依實際資料欄位增減修改。
  • 此方式僅適用於傳統 ASP.NET WebForms 等伺服器端渲染表格的場景;現代前端建議改用 SheetJS (xlsx) 等純前端庫實作跨瀏覽器匯出。
copyright © 萬盛學電腦網 all rights reserved