export html table to csv javascript
function downloadCSV(csv, filename) {
let csvFile;
let 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 = 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, separator) {
const csv = [];
const rows = document.querySelectorAll("table tr");
for (let i = 0; i < rows.length; i++) {
let row = [];
const cols = rows[i].querySelectorAll("td, th");
for (let j = 0; j < cols.length; j++)
// Add double quote to make the value stay in the same column if is separated by comma
row.push(`"${cols[j].innerText}"`);
csv.push(row.join(separator));
}
// Download CSV file
downloadCSV(csv.join("\n"), filename);
}
document.querySelector('button').addEventListener('click', () => {
exportTableToCSV('filename.csv', ',');
});