📅  最后修改于: 2023-12-03 14:51:55.235000             🧑  作者: Mango
在一些 web 应用程序中,我们经常需要将 HTML 表格导出为 CSV 文件以方便用户将数据转移到其他应用程序或处理表格数据。本文将介绍如何使用 JavaScript 将 HTML 表格导出为 CSV。
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>小明</td>
<td>20</td>
<td>男</td>
</tr>
<tr>
<td>小红</td>
<td>22</td>
<td>女</td>
</tr>
</tbody>
</table>
<button onclick="exportTableToCSV('members.csv')">导出为 CSV</button>
其中,exportTableToCSV
是我们要编写的导出函数。
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(","));
}
// 下载 CSV 文件
downloadCSV(csv.join("\n"), filename);
}
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();
}
我们先定义了一个 exportTableToCSV
函数,这个函数用来获取表格数据和生成 CSV 文件。它首先获取了表格的所有行和它们的列,然后将它们组合为一个 CSV 数组。最后,它将这个 CSV 数组转换为字符串,然后调用 downloadCSV
函数下载这个 CSV 文件。
downloadCSV
函数用于使用浏览器的下载功能下载这个 CSV 文件。它首先将 CSV 数据转换为一个 Blob 对象,然后创建一个下载链接并为其设置 download
属性和 href 属性,最后将链接添加到页面的 body 部分并模拟点击。这样就会触发下载该文件的操作。
以上就是使用 JavaScript 将 HTML 表格导出为 CSV 的完整流程。希望这篇文章能对你有所帮助。