티스토리 뷰
exceljs란?
exceljs란 javascript에서 데이터를 엑셀로 추출 및 조작할 수 있는 라이브러리로, 특정 셀의 스타일을 커스텀하고 합칠 수 있는 장점이 있는 라이브러리이다.
공식 문서 링크
npm exceljs 링크
npm file-saver 링크
기본 사용법
const workbook = new Exceljs.Workbook();
// 여러 엑셀 시트를 포함하는 하나의 workbook 생성
const worksheet = workbook.addWorksheet("시트 이름");
// 엑셀 sheet 생성
적용 예제
const data = [
{ id: 184302, email: "a@a", date: "2024-08-12" },
{ id: 15223, email: "b@b", date: "1231-4546" },
{ id: 48565, email: "c@c", date: "121-955-66" },
];
document.querySelector("#down").addEventListener("click", () => {
download();
});
const download = async () => {
// ExcelJS 라이브러리에서 Workbook 객체 생성
const workbook = new ExcelJS.Workbook();
// 새로운 워크시트를 생성하고 이름을 설정
const worksheet = workbook.addWorksheet("시트 이름");
// data 배열의 첫 번째 객체에서 열의 이름(키) 추출
const columns = Object.keys(data[0]);
// 워크시트의 열을 설정, 각 열의 헤더와 키를 정의
worksheet.columns = columns.map((column) => ({
header: column, // 열의 헤더에 사용할 이름
key: column, // 데이터에 사용할 키
}));
// 워크시트의 두 번째 행부터 데이터 삽입
worksheet.insertRows(2, data);
// 워크북의 내용을 바이너리 형태의 버퍼로 변환, 이 버퍼는 Excel 파일의 내용을 포함
const buffer = await workbook.xlsx.writeBuffer();
// 바이너리 데이터를 Blob 객체로 변환, MIME 타입은 Excel 파일에 적합한 형식 설정
const blob = new Blob([buffer], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
// Blob 객체를 다운로드할 수 있는 URL 생성
const url = window.URL.createObjectURL(blob);
// 다운로드 링크를 생성하기 위해 <a> 엘리먼트 생성
const anchor = document.createElement("a");
// 생성한 url을 링크의 href 속성 설정
anchor.href = url;
// 다운로드할 파일의 이름 설정
anchor.download = "파일명.xlsx";
// 링크를 클릭하여 파일 다운로드
anchor.click();
// 메모리에서 URL을 해제하여 메모리 누수 방지
window.URL.revokeObjectURL(url);
};
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 렌더링 과정
- useeffet
- 스코프
- n 번째 원소부터
- StringBuilder
- SQL 개발자
- rep;ㅁce
- 배열만들기1
- 프로그래머스 qr code
- replaceAll
- 대소문자 변환
- 엑셀 파일 추출
- 호이스팅
- 콜백 큐
- 브라우저의 기본 구조
- 중첩스코프
- SQLD
- 마진과 패딩의 차이점
- Java
- replace와 replaceAll의 차이점
- Replace
- Object.clone()
- 프로그래머스 세로 읽기
- startsWith()
- 문자열 반복하기
- 배열 만들기3
- 프로그래머스
- 블록스코프
- nodelist
- 신입개발자 면접 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함