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', ',');
});