일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 타입스크립트
- rn webview page loading
- 웹뷰 페이지 로딩
- reactnative 웹뷰 페이지 로딩
- 트윈맥스 기초
- 퍼블리셔
- styled component is not working
- React-Native 공부
- gsap 기초
- React Native SafeArea Custom
- input 숫자입력
- react
- React Native navigation
- styled component 작동안함
- 임고미
- SafeArea 커스텀
- styled component
- gsap
- slick slider 간격
- react native safeArea
- react이론
- 리액트
- JS
- styled component 작동 안될때
- safari wiondow.open
- scrollIntoView scrollTo
- React-Native IOS
- 프론트앤드
- RN navitate push
- js 특정 위치로 이동
Archives
- Today
- Total
개발공부 임고미
[React - Xlsx & react-csv ] 엑셀 다운로드 만들기! 본문
728x90
300x250
들어가며!
처음에 csv파일과 xlsx의 차이를 잘 몰라 어떤것을 선택해 엑셀로 변환시킬까 고민하다가 두 타입의 차이점을 알아보았다.
csv
1. MS-Excel, Google Sheet등 과 같은 다양한 스프레시트에서 사용할 수 있습니다.
2. xlsx에 비해 쉽고 빠르게 읽을 수 있다.
3. 단순 읽고 쓰는 정도라면 csv추천
xlsx
1. 기능이 많다.
2. csv에비해 무겁다.
-------
둘 중 필요한거 확인 후! 세팅!
csv
csv형식으로 만들때 사용할 패키지는 react-csv이다.
npm i react-csv
//https://www.npmjs.com/package/react-csv
해당 링크에 들어가면 다양한 예시코드가 존재하는데 정말 그대로 사용하면 됩니다!
제가 사용한 방법은, 다양한 방법 중 가장 가독성이 좋다고 판단한 array of literal objects 입니다.
data = [
{ firstname: "Ahmed", lastname: "Tomi", email: "ah@smthing.co.com" },
{ firstname: "Raed", lastname: "Labes", email: "rl@smthing.co.com" },
{ firstname: "Yezzi", lastname: "Min l3b", email: "ymin@cocococo.com" }
];
다운받을때는
import { CSVLink, CSVDownload } from "react-csv";
//데이터
<CSVLink data={csvData}>Download me</CSVLink>;
작성해주시면 됩니다!
xlsx
다음 패키지를 로드합니다
npm i xlsx
//https://www.npmjs.com/package/xlsx
다운로드 버튼 세팅
<CommonButton className='excel-btn' onClick={()=> excelDownload(columns)}>
엑셀 다운로드
</CommonButton>
기능 세팅
const excelDownload = (columns) => {
const ws = xlsx.utils.json_to_sheet(columns);
const wb = xlsx.utils.book_new();
xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');
xlsx.writeFile(wb, `${state.title}_${Date.now()}.xlsx`);
};
xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');
시트 이름을 지정해줄 수 있습니다
xlsx.writeFile(wb, `${state.title}_${Date.now()}.xlsx`);
한글이름으로 파일명을 지정해줄건데, 중복 다운로드하면 (1), (2) ... 가 파일명 뒤에 붙으므로 Date.now()함수를 통해 타임스템프를 찍어줍니다.
다른 방법으로 참고한 블로그
728x90
300x250
'리액트 > 라이브러리' 카테고리의 다른 글
[Slick-slider] React slick 세팅/간격주기/드래그 중 클릭막기 - 드래그 중 클릭막기[3] (1) | 2022.05.02 |
---|---|
[Slick-slider] React slick 세팅/간격주기/드래그 중 클릭막기 - 간격주기 / Hover효과 영역[2] (0) | 2022.04.28 |
[Slick-slider] react slickt 세팅/간격주기/드래그 중 클릭막기 [1] (0) | 2022.04.28 |
[Styled Component] 적용안되는경우1 (4) | 2021.11.29 |
[StyledComponent] 스타일드 컴포넌트 활용하기 (3) | 2021.03.22 |
Comments