从handsontable导出为excel

问题描述 投票:0回答:2

我正在使用handsontable插件来生成excel格式的数据。这样就完成了。

我需要将该数据导出为 Excel 并下载。

handsontable 有功能吗?

如果没有,我怎样才能实现这一目标?这里,Handsontable数据的表格格式不同

javascript jquery handsontable
2个回答
2
投票

目前还没有任何功能,下个月将在专业版中推出。同时,有 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();
    })
}

0
投票

使用帅表中的exportFile插件

// Mind that CSV exports contain only raw data, and don't include formulas, styling, or formatting information.
let table = new Handsontable(container, options)
// access to exportFile plugin instance
const exportPlugin = table.getPlugin('exportFile');
// export as a string
// exportPlugin.exportAsString('csv');
// export as a blob object
// exportPlugin.exportAsBlob('csv');
// export to downloadable file (named: MyFile.csv)
exportPlugin.downloadFile('csv', {
 bom: true,
 columnDelimiter: ',',
 columnHeaders: false,
 rowHeaders:false,
 exportHiddenColumns: true,
 exportHiddenRows: true,
 fileExtension: 'csv',
 filename: 'Excel-[YYYY]-[MM]-[DD]',
 mimeType: 'text/csv',
 rowDelimiter: '\r\n',
});
© www.soinside.com 2019 - 2024. All rights reserved.