javascript - 在客户端将计算的表单条目导出到 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);
}
我还在 Chrome 和 Firefox 上尝试了以下代码,但没有任何操作。没有下载。
资料来源:如何将 JavaScript Json 信息导出到 csv(在客户端)?
来源:Javascript:导出大文本/csv 文件会使 Google Chrome 崩溃
资料来源:https ://stackoverflow.com/questions/ask?newreg=694c4ce67b9c427db25c43f9b97a8194
感谢您的时间和投入
解决方案
推荐阅读
- python-3.x - 我怎样才能给数组索引一个标签以便调用它?
- docker - Docker 容器 Windows,通过 RDP 或 VNC 客户端连接
- sql - 如何计算用户留存图表中的总百分比
- c# - 如何通过使用字节而不是 GetPixel() 方法来提高 C# 算法的速度?
- reactjs - React - 根据查询字符串参数值有条件地显示块
- c# - 多个 Linq 函数作为参数
- vue.js - 如何在组件和状态中维护相似的变量名 - VUEJS?
- node.js - 如何使用 azure 函数处理流数据?
- java - 我需要用图像替换占位符
- mailchimp - MailChimp Double Optin API 未发送 conf。电子邮件