버튼 이벤트에 대한 구현입니다. table 의 html 형태에서 row 개수만큼의 내용을 textContent 속성을 통해 값을 얻습니다. 그리고 clipboardData 배열에 하나씩 담습니다. 엑셀 구분자는 \t 이며 이를 통해 한줄씩 저장합니다.
textarea 를 생성하여 배열값을 담아 바인딩 하고, 이를 select() 함수를 통해 클립보드 복사(copy) 합니다.
document.getElementById("copyButton").addEventListener("click", function () {
const table = document.getElementById("dataTable");
const rows = table.rows;
const clipboardData = [];
for (let i = 0; i < rows.length; i++) {
const row = rows[i];
const rowData = [];
for (let j = 0; j < row.cells.length; j++) {
rowData.push(row.cells[j].textContent);
}
clipboardData.push(rowData.join("\t")); // Use tab as a separator for Excel
}
const clipboardText = clipboardData.join("\n"); // Use newline to separate rows
const tempTextArea = document.createElement("textarea");
tempTextArea.value = clipboardText;
document.body.appendChild(tempTextArea);
tempTextArea.select();
document.execCommand("copy");
document.body.removeChild(tempTextArea);
alert("Table data copied to clipboard. You can now paste it into Excel.");
});