I have the below table
<table>
<tr><th>Name</th><th>Age</th><th>Country</th></tr>
<tr><td>Geronimo</td><td>26</td><td>France</td></tr>
<tr><td>Natalia</td><td>19</td><td>Spain</td></tr>
<tr><td>Silvia</td><td>32</td><td>Russia</td></tr>
</table>
<br/>
<table>
<tr><th>Pet</th><th>Breed</th><th>Type</th></tr>
<tr><td>Roscoe</td><td>Pug</td><td>Dog</td></tr>
<tr><td>Polly</td><td>Parrot</td><td>Bird</td></tr>
<tr><td>Whiskers</td><td>Calico</td><td>Cat</td></tr>
</table>
<br/>
<table>
<tr><th>Pet</th><th>Breed</th><th>Type</th></tr>
<tr><td>Roscoe</td><td>Pug</td><td>Dog</td></tr>
<tr><td>Polly</td><td>Parrot</td><td>Bird</td></tr>
<tr><td>Whiskers</td><td>Calico</td><td>Cat</td></tr>
</table>
<button>Export HTML table to CSV file</button>
and I have the below JS code
function download_csv(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;
// We have to create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);
// Make sure that the link is not displayed
downloadLink.style.display = "none";
// Add the link to your DOM
document.body.appendChild(downloadLink);
// Lanzamos
downloadLink.click();
}
function export_table_to_csv(html, 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
download_csv(csv.join("\n"), filename);
}
document.querySelector("button").addEventListener("click", function () {
var html = document.querySelector("table").outerHTML;
export_table_to_csv(html, "table.csv");
});
This code converts the html tables into an csv file for download. I was wondering if it's possible to somehow add some styling to it so when the csv is open in Excel it display table header with some color to it.
Here's the fiddle Fiddle
Thanks