首页 > 解决方案 > 在客户端将计算的表单条目导出到 csv

问题描述

我一直在寻找允许用户将计算的表单条目导出到 csv(客户端)的正确代码。我使用了一个表单插件,它允许将表单的简码粘贴到用户可以执行不同计算的页面上。

我已经复制并粘贴了所提供的代码,没有进行任何修改,但什么也没有。

当我尝试下面的代码时,我得到了一个空白的 CSV 文件。我不知道我在这个过程中遗漏了什么。

// Quick and simple export target #table_id into a csv
function download_table_as_csv(table_id, separator = ',') {
    // Select rows from table_id
    var rows = document.querySelectorAll('table#' + table_id + ' tr');
   // Construct csv
      var csv = [];
for (var i = 0; i < rows.length; i++) {
    var row = [], cols = rows[i].querySelectorAll('td, th');
    for (var j = 0; j < cols.length; j++) {
        // Clean innertext to remove multiple spaces and jumpline (break csv)
        var data = cols[j].innerText.replace(/(\r\n|\n|\r)/gm, '').replace(/(\s\s)/gm, ' ')
        // Escape double-quote with double-double-quote (see https://stackoverflow.com/questions/17808511/properly-escape-a-double-quote-in-csv)
        data = data.replace(/"/g, '""');
        // Push escaped string
        row.push('"' + data + '"');
    }
    csv.push(row.join(separator));
}
var csv_string = csv.join('\n');
// Download it
var filename = 'export_' + table_id + '_' + new Date().toLocaleDateString() + '.csv';
var link = document.createElement('a');
link.style.display = 'none';
link.setAttribute('target', '_blank');
link.setAttribute('href', 'data:text/csv;charset=utf-8,' + encodeURIComponent(csv_string));
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}

来源:将 html 表导出到 csv

我还在 Chrome 和 Firefox 上尝试了以下代码,但没有任何操作。没有下载。

资料来源:如何将 JavaScript Json 信息导出到 csv(在客户端)?

来源:Javascript:导出大文本/csv 文件会使 Google Chrome 崩溃

资料来源:https ://stackoverflow.com/questions/ask?newreg=694c4ce67b9c427db25c43f9b97a8194

感谢您的时间和投入

标签: javascriptexport-to-csv

解决方案


推荐阅读