jquery 从handsontable导出为excel

5us2dqdw  于 2023-02-18  发布在  jQuery
关注(0)|答案(1)|浏览(212)

我正在使用handsontable插件生成Excel格式的数据。这是完成。
我需要导出该数据为excel和下载。
handsontable中是否有可用功能?
如果没有,我怎么才能做到呢?这里,Handsontable数据在表格格式上是不同的

sq1bmfud

sq1bmfud1#

现在还没有一个特性,下个月的Pro版本会有,同时,this stack answer有一个解决方案可以实现,你需要解析handsontable中的数据对象,然后用普通的JS方式将字符串导出到csv。
如果你不想点击链接,这里是fiddle,以及相关代码:

function parseRow(infoArray, index, csvContent) {
    var sizeData = _.size(hot1.getData());
    if (index < sizeData - 1) {
        dataString = "";
        _.each(infoArray, function(col, i) {
            dataString += _.contains(col, ",") ? "\"" + col + "\"" : col;
            dataString += i < _.size(infoArray) - 1 ? "," : "";
        })

        csvContent += index < sizeData - 2 ? dataString + "\n" : dataString;
    }
    return csvContent;
}

/**
 * Export to CSV button
 */
var exportCsv = $("#export-csv")[0];
if (exportCsv) {
    Handsontable.Dom.addEvent(exportCsv, "mouseup", function(e) {
        exportCsv.blur(); // jquery ui hackfix
        var csvContent = "data:text/csv;charset=utf-8,";
        csvContent = parseRow(colHeaders, 0, csvContent);  // comment this out to remove column headers
        _.each(hot1.getData(), function(infoArray, index) {
            csvContent = parseRow(infoArray, index, csvContent);
        });
        var encodedUri = encodeURI(csvContent);
        var link = document.createElement("a");
        link.setAttribute("href", encodedUri);
        link.setAttribute("download", $("h1").text() + ".csv");
        link.click();
    })
}

相关问题