javascript - 如何在将表字段导出到 csv 时忽略逗号?
问题描述
我发现这段代码可以将我的表格内容下载为 csv 格式,但问题是我的表格字段在其字段中有逗号(,),但该函数拆分了该字段。
这些是功能:
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
csvFile = new Blob([csv], {type: "text/csv"});
downloadLink = document.createElement("a");
downloadLink.download = filename;
downloadLink.href = window.URL.createObjectURL(csvFile);
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
downloadLink.click();
}
function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("table tr");
for (var i = 0; i < rows.length; i++) {
var row = [], cols = rows[i].querySelectorAll("td, th");
for (var j = 0; j < cols.length; j++)
row.push(cols[j].innerText);
csv.push(row.join(","));
}
// Download CSV file
downloadCSV(csv.join("\n"), filename);
}
这是html代码:
<table>
<tr>
<th>Name</th>
<th>Email</th>
<th>Location</th>
</tr>
<tr>
<td>John Doe</td>
<td>john@gmail.com</td>
<td>India,up</td>
</tr>
<tr>
<td>Stephen Thomas</td>
<td>stephen@gmail.com</td>
<td>UK,london</td>
</tr>
<tr>
<td>Natly Oath</td>
<td>natly@gmail.com</td>
<td>France</td>
</tr>
</table>
<button onclick="exportTableToCSV('members.csv')">Export HTML Table To CSV
File</button>
john 和 natly 的位置列将被拆分。
解决方案
您可以使用引号忽略逗号
function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("table tr");
for (var i = 0; i < rows.length; i++) {
var row = [], cols = rows[i].querySelectorAll("td, th");
for (var j = 0; j < cols.length; j++)
row.push("\""+cols[j].innerText+"\"");
csv.push(row.join(","));
}
// Download CSV file
downloadCSV(csv.join("\n"), filename);
}
推荐阅读
- php - 在所有输入都填满之前,如何阻止页面重新加载?
- c# - 主框架监听页面按钮点击事件
- sql - SQL Server 命名策略管理阻止正确命名的存储过程
- laravel - Laravel:如何在 MorphPivot 中定义 belongsTo?
- react-native - 具有相同状态名称的多个组件,如何更改一个组件的一种状态而不影响其他组件?
- reporting-services - 是否可以将 SSRS 用于 Progress OpenEdge 数据库?
- hyperledger-fabric - Fabric-CA-Server,使用密码验证用户
- ios - 获取:“在演示或关闭过程中尝试从视图控制器中关闭”
- http - 如何查找页面重定向到的 URL
- java - 转换字符串中间的 ASCII 值