[Sheetjs] 1개의 시트에 여러개의 테이블 넣기
2023. 12. 4. 16:33ㆍJavascript
상황
1. html 테이블이 동적으로 생성 되는 중
2. 동적 table을 클라이언트 단에서 엑셀파일로 만들고 싶었음 (굳이 서버를 거쳐야하나..?)
3. name 혹은 table 요소 선택자로 다 가져와서 sheetjs로 엑셀파일을 만들수 있게 하고 싶었음
<코드>
//개발가이드 액셀 다운로드 기능
function excelDown() {
//객체 생성(excel)
var wb = XLSX.utils.book_new();
//html 모든 테이블 선택
var tables = document.querySelectorAll('table');
// 1개의 배열에 모든 데이터를 담기 위해
var combinedData = [];
tables.forEach(function (table, index) {
var ws = XLSX.utils.table_to_sheet(table);
//헤더 1에 데이터가 있음 (나머지는 속성값들)
var data = XLSX.utils.sheet_to_json(ws, { header: 1 });
//한줄 띄어쓰기
data.push([' ', ' '])
combinedData = combinedData.concat(data);
});
//시트 생성
var combinedSheet = XLSX.utils.aoa_to_sheet(combinedData);
//시트에 데이터 입력 (엑셀 객체,데이터가 담긴 시트,시트 명)
XLSX.utils.book_append_sheet(wb, combinedSheet, `시트명`);
//최종 파일
XLSX.writeFile(wb, `최종 파일 이름.xlsx`);
}
728x90
반응형
'Javascript' 카테고리의 다른 글
[MicroSoft] Adaptive Card 적용시켜보기 (js기반) (0) | 2023.12.29 |
---|---|
[javascript]sortable 사용법 (0) | 2023.11.20 |
[jsp] 페이지네이션 하기 (0) | 2023.11.09 |
✔️ iframe 페이지 전체 새로고침 (0) | 2023.10.27 |
Day6_VSCODE_JavaScript_이터레이터+이터러블 (1) | 2023.04.12 |