在 Excel 文件中按顺序保存 HTML Table 数据
Saving HTML Table data in order in Excel File
我正在将 HTML table 数据转换为 Excel CSV 文件,我正在使用以下代码:
<script>
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
// CSV file
csvFile = new Blob([csv], {type: "text/csv"});
// Download link
downloadLink = document.createElement("a");
// File name
downloadLink.download = filename;
// Create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);
// Hide download link
downloadLink.style.display = "none";
// Add the link to DOM
document.body.appendChild(downloadLink);
// Click download link
downloadLink.click();
}
function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("#faqs 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);
}
</script>
问题是此脚本生成 Excel sheet 格式不正确。
从图像中您可以看到问题列的文本包含逗号 ,
,因此逗号导致了问题。而且所有 Excel 字段都不是我想要的格式。我想在各自的列中列出与列相关的所有数据,但问题列混淆了脚本。
按钮:
<button onclick="exportTableToCSV('faqs.csv')"> Export CSV</button>
for (columnCounter = 0; columnCounter < totalColumns; columnCounter++) {
// quote each column in order to escape any commas
row.push('"' + cols[columnCounter].innerText + '"');
}
我正在将 HTML table 数据转换为 Excel CSV 文件,我正在使用以下代码:
<script>
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
// CSV file
csvFile = new Blob([csv], {type: "text/csv"});
// Download link
downloadLink = document.createElement("a");
// File name
downloadLink.download = filename;
// Create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);
// Hide download link
downloadLink.style.display = "none";
// Add the link to DOM
document.body.appendChild(downloadLink);
// Click download link
downloadLink.click();
}
function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("#faqs 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);
}
</script>
问题是此脚本生成 Excel sheet 格式不正确。
从图像中您可以看到问题列的文本包含逗号 ,
,因此逗号导致了问题。而且所有 Excel 字段都不是我想要的格式。我想在各自的列中列出与列相关的所有数据,但问题列混淆了脚本。
按钮:
<button onclick="exportTableToCSV('faqs.csv')"> Export CSV</button>
for (columnCounter = 0; columnCounter < totalColumns; columnCounter++) {
// quote each column in order to escape any commas
row.push('"' + cols[columnCounter].innerText + '"');
}