[Node.js] Excel 파일 생성하고 데이터 읽기[Node.js] Excel 파일 생성하고 데이터 읽기
Posted at 2020. 5. 1. 13:19 | Posted in Node.jsAPI : https://www.npmjs.com/package/xlsx
■ 엑셀 데이터 읽어오기
$ npm install xlsx |
■ 엑셀 데이터 읽어오기
# 엑셀파일
# 소스코드
excel_file_read.js |
// @breif xlsx 모듈추출 const xlsx = require( "xlsx" ); // @files 엑셀 파일을 가져온다. const excelFile = xlsx.readFile( "wise_life_doctor.xlsx" ); // @breif 엑셀 파일의 첫번째 시트의 정보를 추출 const sheetName = excelFile.SheetNames[0]; // @details 첫번째 시트 정보 추출 const firstSheet = excelFile.Sheets[sheetName]; // @details 시트의 제목 추출 // @details 엑셀 파일의 첫번째 시트를 읽어온다. const jsonData = xlsx.utils.sheet_to_json( firstSheet, { defval : "" } ); console.log( jsonData ); |
# 출력결과
$ node excel_file_read.js |
■ 엑셀 파일 작성하기
# 소스코드
excel_write_file.js |
// @breif xlsx 모듈추출 const xlsx = require( "xlsx" ); // @breif 가상의 엑셀파일을 생성한다. const book = xlsx.utils.book_new(); // -------------------------------------------------------------------- // @breif 1번 시트 // @breif aoa_to_sheet 방식으로 데이터를 생성한다. const doctors = xlsx.utils.aoa_to_sheet( [ [ "학과", "직급", "이름", "나이" ] , [ "흉부외과", "병원장", "주전", "67" ] , [ "흉부외과", "교수", "천명태", "52" ] , [ "흉부외과", "치프", "도재학", "39" ] , [ "소아외과", "레지던트", "장겨울", "29" ] , [ "산부인과", "레지던트", "추민하", "34" ] , [ "산부인과", "레지던트", "명은원", "28" ] , [ "신경외과", "교수", "민기준", "55" ] , [ "신경외과", "치프", "용석민", "33" ] , [ "신경외과", "레지던트", "안치홍", "38" ] , [ "신경외과", "레지던트", "허선빈", "31" ] , [ "응급의학과", "조교수", "봉광현", "40" ] , [ "응급의학과", "펠로우", "배준희", "31" ] ] ); // @breif CELL 넓이 지정 doctors["!cols"] = [ { wpx : 130 } // A열 , { wpx : 100 } // B열 , { wpx : 80 } // C열 , { wch : 60 } // D열 ] // @breif 첫번째 시트에 작성한 데이터를 넣는다. xlsx.utils.book_append_sheet( book, doctors, "DOCTOR" ); // -------------------------------------------------------------------- // @breif 2번 시트 // @details json_to_sheet 방식으로 데이터를 생성한다. const nurses = xlsx.utils.json_to_sheet( [ { A : "학과", B : "직급", C : "이름", D : "나이" } , { A : "흉부외과", B : "PA간호사", C : "소이현", D : "33" } , { A : "소아외과", B : "PA간호사", C : "한현희", D : "29" } , { A : "산부인과", B : "분만실간호사", C : "한한승주현희", D : "41" } , { A : "산부인과", B : "PA간호사", C : "은선진", D : "36" } , { A : "간담췌외과", B : "수간호사", C : "송수빈", D : "45" } , { A : "간담췌외과", B : "병동간호사", C : "이영하", D : "35" } , { A : "간담췌외과", B : "병동간호사", C : "김재환", D : "28" } , { A : "간담췌외과", B : "PA간호사", C : "국해성", D : "32" } , { A : "간담췌외과", B : "이식코디네이터", C : "함덕주", D : "37" } , { A : "신경외과", B : "PA간호사", C : "황재신", D : "39" } , { A : "응급의학과", B : "응급실간호사", C : "선우희수", D : "26" } ], { header : ["A", "B", "C", "D"], skipHeader : true } ); // @breif CELL 넓이 지정 nurses["!cols"] = [ { wpx : 130 } // A열 , { wpx : 100 } // B열 , { wpx : 80 } // C열 , { wch : 60 } // D열 ] // @details 두번째 시트에 작성한 데이터를 넣는다. xlsx.utils.book_append_sheet( book, nurses, "NURSES" ); // -------------------------------------------------------------------- // @files 엑셀파일을 생성하고 저장한다. xlsx.writeFile( book, "dramatis_personae.xlsx" ); |
# 실행결과
$ node excel_write_file.js |
'Node.js' 카테고리의 다른 글
[Noe.js] 실행시 값 입력하기 (0) | 2020.05.04 |
---|---|
[Node.js] Email 발송하기 (0) | 2020.05.01 |
[Node.js] Serial Port를 이용한 Arduino 이벤트 실행 (0) | 2019.06.13 |
[Node.js] Terminal 명령을 수행하는 node_cmd 모듈 (0) | 2019.05.10 |
[Node.js] SCRAPING을 위한 cheerio 모듈과 cheerio-httpcli 모듈 (0) | 2019.05.08 |