前端導出Excel文件的多個方面詳解

一、前端導出Excel文件後端怎麼獲取

當我們在前端導出Excel文件的時候,很多時候需要後端來獲取導出的文件,以便進行後續的處理。在這種情況下,前端需要將導出的文件通過網絡傳輸協議發送給後端,通常使用HTTP協議來實現。下面是一個使用jQuery的示例:

$.ajax({
    url: "http://example.com/export",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function(data) {
        console.log("Export success");
    },
    error: function() {
        console.log("Export error");
    }
});

上面的代碼中,我們使用了POST方法向URL為http://example.com/export的地址發送了導出的文件。數據通過formData傳輸,processData和contentType選項需要設置為false,以便讓jQuery不將其轉換為字符串格式。成功和失敗的回調函數分別處理導出成功和失敗的情況。

二、前端導出Excel文件篩選條件

在使用前端導出Excel文件的時候,很多情況下需要根據一些條件來篩選導出的數據。下面是一個使用jQuery和AJAX的示例:

$.ajax({
    url: "http://example.com/export",
    type: "POST",
    data: {
        dateFrom: "2020-01-01",
        dateTo: "2020-12-31",
        status: "completed"
    },
    success: function(data) {
        console.log("Export success");
    },
    error: function() {
        console.log("Export error");
    }
});

上面的代碼中,我們向後端發送了三個篩選條件–日期從2020年1月1日到2020年12月31日,狀態為已完成。後端根據這些篩選條件從數據庫中獲取相應的數據,並導出Excel文件。

三、HTML導出Excel文件

使用HTML表格數據來導出Excel文件是一個非常流行的方法,因為HTML表格數據結構和Excel文件的結構非常相似。下面是一個使用jQuery和js-xlsx庫的示例:

$("#export-btn").click(function() {
    var wb = XLSX.utils.table_to_book($("#table-id")[0]);
    var wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'});
    saveAs(new Blob([s2ab(wbout)], {type:"application/octet-stream"}), 'export.xlsx');
});

function s2ab(s) {
    var buf = new ArrayBuffer(s.length);
    var view = new Uint8Array(buf);
    for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
    return buf;
}

上面的代碼中,我們首先使用XLSX.utils.table_to_book()方法將HTML中的表格數據轉換為Excel文件,並將結果存儲在wb對象中。然後我們使用XLSX.write()方法將wb對象轉換為二進制字符串格式的Excel文件,並將其保存到本地文件中。這裡我們使用了FileSaver.js來實現文件的保存功能。

四、前端導出Excel表格

除了導出Excel文件外,我們還可以將表格數據導出為Excel表格。下面是一個使用jQuery和TableExport庫的示例:

$("#export-btn").click(function() {
    $("#table-id").tableExport({
        type: "xlsx",
        fileName: "export",
        worksheetName: "Sheet1"
    });
});

上面的代碼中,我們使用TableExport庫將表格數據導出為Excel表格。type選項指定了導出格式,fileName選項指定了導出文件名,worksheetName選項指定了工作表的名稱。

五、前端Excel導出功能

前端Excel導出功能是指允許用戶在前端操作Excel文件,包括添加、刪除、編輯等操作。下面是一個使用jQuery和SheetJS庫的示例:

var workbook = XLSX.utils.book_new();

$("#add-btn").click(function() {
    XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet([["new data"]]), "Sheet1");
});

$("#delete-btn").click(function() {
    XLSX.utils.book_delete_sheet(workbook, "Sheet2");
});

$("#download-btn").click(function() {
    var wbout = XLSX.write(workbook, {bookType:'xlsx', bookSST:true, type: 'binary'});
    saveAs(new Blob([s2ab(wbout)], {type:"application/octet-stream"}), 'export.xlsx');
});

function s2ab(s) {
    var buf = new ArrayBuffer(s.length);
    var view = new Uint8Array(buf);
    for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
    return buf;
}

上面的代碼中,我們首先創建了一個Workbook對象workbook,這個對象可以包含多個工作表。然後我們通過SheetJS庫提供的方法向Workbook對象中添加新的工作表,刪除指定的工作表,並最終將整個Workbook對象導出為Excel文件。

六、純前端導出Excel

對於小規模數據,我們也可以在前端使用JavaScript直接生成Excel文件。下面是一個使用js-xlsx庫的示例:

var data = [["name", "age", "gender"], ["John", 23, "male"], ["Jane", 25, "female"]];

var wb = XLSX.utils.book_new();
var ws = XLSX.utils.aoa_to_sheet(data);

XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

var wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'});
saveAs(new Blob([s2ab(wbout)], {type:"application/octet-stream"}), 'export.xlsx');

function s2ab(s) {
    var buf = new ArrayBuffer(s.length);
    var view = new Uint8Array(buf);
    for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
    return buf;
}

上面的代碼中,我們首先定義了需要導出的數據data。然後我們使用XLSX.utils.book_new()方法創建了一個Workbook對象wb,使用XLSX.utils.aoa_to_sheet()方法將數據數組轉換為Sheet對象ws。最後我們將ws添加到wb中,並將wb導出為Excel文件。

七、前端table導出Excel

前端table導出Excel是指用戶在前端操作HTML表格數據,然後將表格數據導出為Excel文件。下面是一個使用jQuery和BootstrapTable庫的示例:

$("#export-btn").click(function() {
    $("#table-id").tableExport({
        type: "xlsx",
        fileName: "exported_data",
        bootstrap: true,
        exportDataType: "all"
    });
});

上面的代碼中,我們使用BootstrapTable庫的tableExport插件將表格數據導出為Excel文件。type選項指定了導出文件格式,fileName選項指定了導出文件名,bootstrap選項指定了是否使用Bootstrap主題,exportDataType選項指定了導出的數據類型。

八、前端導出數據到Excel表格

我們也可以將數據源導出到Excel表格中。下面是一個使用jQuery和ExportSheetJS庫的示例:

$("#export-btn").click(function() {
    var data = [
        {id: 1, name: "John", age: 23},
        {id: 2, name: "Jane", age: 25},
        {id: 3, name: "Bob", age: 30}
    ];

    var options = {
        headers: [
            {id: "id", title: "ID"},
            {id: "name", title: "Name"},
            {id: "age", title: "Age"}
        ],
        fileName: "exported_data",
        fileType: "xlsx"
    };

    ExportSheetJS.export(data, options);
});

上面的代碼中,我們定義了需要導出的數據源data,並指定了headers選項來定義表頭。然後我們使用ExportSheetJS庫的export()方法將數據源導出為Excel文件,並指定了導出文件名和文件格式等參數。

九、前端頁面導出Excel

除了將表格數據導出為Excel文件外,我們還可以將整個頁面導出為Excel文件。下面是一個使用jQuery和html2canvas庫的示例:

$("#export-btn").click(function() {
    html2canvas($("#page-content"), {
        onrendered: function(canvas) {
            var imgData = canvas.toDataURL('image/png');
            var doc = new jsPDF('l', 'mm', [420, 297]);
            doc.addImage(imgData, 'PNG', 10, 10, 400, 277);
            doc.save('export.pdf');
        }
    });
});

上面的代碼中,我們使用了html2canvas庫將整個頁面渲染到Canvas元素中,然後使用jsPDF庫將Canvas元素導出為PDF文件,從而實現了頁面導出的功能。

總結

通過上面的介紹,我們可以看到前端導出Excel文件有很多種方式,可以根據不同的需求選擇使用合適的方法。在選擇導出方法的時候,需要考慮到導出數據的大小和格式,以及後續的數據處理需求等因素。

原創文章,作者:UECH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150075.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UECH的頭像UECH
上一篇 2024-11-07 09:49
下一篇 2024-11-07 09:49

相關推薦

發表回復

登錄後才能評論