|
| 1 | +document.addEventListener("DOMContentLoaded", function () { |
| 2 | + let CSV = document.getElementById("csv"); |
| 3 | + let button = document.getElementById("btn"); |
| 4 | + |
| 5 | + CSV.addEventListener("change", (event) => { |
| 6 | + const file = event.target.files[0]; |
| 7 | + const reader = new FileReader(); |
| 8 | + |
| 9 | + reader.onload = (e) => { |
| 10 | + const content = e.target.result; |
| 11 | + const rows = content.split("\n").map((row) => row.split(",")); |
| 12 | + |
| 13 | + const table = document.getElementById("table"); |
| 14 | + table.innerHTML = ""; |
| 15 | + |
| 16 | + for (let i = 0; i < rows.length; i++) { |
| 17 | + let tr = document.createElement("tr"); |
| 18 | + for (let j = 0; j < rows[i].length; j++) { |
| 19 | + let td = document.createElement("td"); |
| 20 | + td.textContent = rows[i][j]; |
| 21 | + tr.appendChild(td); |
| 22 | + } |
| 23 | + table.appendChild(tr); |
| 24 | + } |
| 25 | + |
| 26 | + CSV.style.display = "none"; |
| 27 | + button.style.display = "block"; |
| 28 | + }; |
| 29 | + |
| 30 | + reader.readAsText(file); |
| 31 | + }); |
| 32 | + |
| 33 | + button.addEventListener("click", () => { |
| 34 | + const rows = document.querySelectorAll("#table tr"); |
| 35 | + let csvContent = ""; |
| 36 | + |
| 37 | + for (let i = 0; i < rows.length; i++) { |
| 38 | + let row = rows[i]; |
| 39 | + let cols = row.querySelectorAll("td"); |
| 40 | + let rowContent = ""; |
| 41 | + |
| 42 | + for (let j = 0; j < cols.length; j++) { |
| 43 | + let col = cols[j]; |
| 44 | + rowContent += col.textContent + ","; |
| 45 | + } |
| 46 | + |
| 47 | + csvContent += rowContent.slice(0, -1) + "\n"; |
| 48 | + } |
| 49 | + |
| 50 | + const blob = new Blob([csvContent], { type: "text/csv" }); |
| 51 | + const url = window.URL.createObjectURL(blob); |
| 52 | + |
| 53 | + const a = document.createElement("a"); |
| 54 | + a.href = url; |
| 55 | + a.download = "exported_data.csv"; |
| 56 | + document.body.appendChild(a); |
| 57 | + a.click(); |
| 58 | + document.body.removeChild(a); |
| 59 | + window.URL.revokeObjectURL(url); |
| 60 | + }); |
| 61 | +}); |
0 commit comments