프로그래밍/React

React-csv 패키지 사용법

나도 오늘부터 개발자?! 2023. 5. 15. 02:52

설치

npm install react-csv --save;
yarn add react-csv

 

사용법

import { CSVLink, CSVDownload } from "react-csv";

const csvData = [
  ["firstname", "lastname", "email"],
  ["Ahmed", "Tomi", "ah@smthing.co.com"],
  ["Raed", "Labes", "rl@smthing.co.com"],
  ["Yezzi", "Min l3b", "ymin@cocococo.com"]
];
<CSVLink data={csvData}>Download me</CSVLink>;
// or
<CSVDownload data={csvData} target="_blank" />;


CSVLink는 엑셀 파일을 다운로드 할 수 있는 링크 입니다. 해당 링크를 클릭했을 때에만 csv 파일을 다운받을 수 있으며, CSVLink 대신 button 태그를 사용하여 대체 할 수도 있습니다.


CSVDownload: 해당 컴포넌트가 마운트 될 때 자동으로 csv를 다운로드 해줍니다.

 

CSVLink props

<CSVLink
  data={data}
  filename={"my-file.csv"}
  className="btn btn-primary"
  target="_blank"
>
  Download me
</CSVLink>;

 

data: csv 파일에서 정보가 들어가는 부분으로 data는 이중배열, 객체 배열 혹은 문자열 형식으로 사용할 수 있습니다.
header: csv 파일에서 필드를 지정할 수 있는 부분으로 label과 key값을 줄 수 있습니다.
filename: 다운로드 받는 csv 파일 이름을 지정하는 props 입니다.
onClick: 링크를 클릭할 때 동기 / 비동기적으로 여러 작업을 수행하고자 할 때 사용할 수 있습니다.

 

주의: CSVLink를 링크를 통해 다운로드 시 데이터가 생성되는 시점의 데이터만 가져오기 때문에 데이터가 생성된 이후에도 데이터를 가져와야 하는 상황이라면 꼭 onClick 핸들러를 사용하여 비동기 처리를 해야합니다. 

 

const getRecordExcelData = async () => {
    await setChangeExcelData(listExcelData.map((value) => {
      return value
    }))
    csvLink?.current?.link.click()
  }

<Button type="primary" style={{width: "16%"}} onClick={getReportExcelData} >
  성적표 Excel Download
</Button>
<CSVLink 
  data={changeExcelData} 
  ref={csvLink}
  filename={`toeic_exam_${id}_scoreboard`}
></CSVLink>

'프로그래밍 > React' 카테고리의 다른 글

React + Typescript - Chart.js (DoughnutChart)  (0) 2023.08.26
React + Typscript에 AOS 라이브러리 사용법  (0) 2023.07.24
React useState 란?  (0) 2023.05.11
React useEffect 란?  (0) 2023.05.08
React useReducer란?  (0) 2023.05.08