xlsx 라이브러리는 Excel 파일을 읽고 쓰고 조작할 수 있는 Node.js 모듈이다. js-xlsx 라이브러리 위에 구축되어 있으며, 간단하고 사용하기 쉬운 API를 제공한다. xlsx를 사용하면 다음과 같은 Excel 파일 관련 작업을 수행할 수 있습니다.
- XLSX, XLSB, XLS, CSV, TXT 등 다양한 형식의 Excel 파일을 읽고 쓰기
- Excel 파일에서 셀, 행, 열 및 워크시트와 같은 데이터를 파싱하고 처리하기
- Excel 파일에서 데이터를 수정하고 조작하기, 셀, 행, 열 및 워크시트를 추가, 삭제 및 업데이트하기
- 새로운 Excel 파일 생성 또는 기존 파일에 새로운 데이터 또는 서식 추가하기
- Excel 파일에서 공식 및 함수를 사용하기, 공식을 계산하고 평가하기
xlsx 라이브러리는 저수준 API인 js-xlsx 라이브러리에 대한 고도의 추상화 수준을 제공하므로, 파일 형식의 세부 정보나 js-xlsx의 저수준 API에 대한 자세한 이해 없이도 Node.js에서 Excel 파일을 쉽게 다룰 수 있다. 또한, xlsx는 동기 및 비동기 I/O 모두 지원하므로 사용 사례에 따라 최적의 방법을 선택할 수 있다. 전반적으로, xlsx 라이브러리는 Node.js에서 Excel 파일을 다루는 강력하고 유연한 도구이며, 데이터 처리, 금융 분석 및 보고서 작성 등 다양한 응용 분야에서 널리 사용된다.
직접 사용해봤는데, 사용해보면서 느낀건 이 라이브러리를 활용하면 엑셀에서는 하기 힘든 내용들을 뽑아낼 수 있다. 데이터 양이 많을수록 코드로 처리하는게 훨씬 편하다. 그리고 내가 원하는 형식/포맷으로 출력할수도 있다. 혹은 엑셀에서 읽은 데이터를 바탕으로 api 호출이 필요할때 이 라이브러리를 활용하면 좋다.
xlsx 설치는 쉽다.
npm install --save xlsx
파일 읽기도 쉽다. xlsx 객체하나 만들고 readFile을 한다. workbool에는 각 시트 정보가 들어가며, 각 시트에서 행으로 읽을 수있다. 코드를 실행하는위치에 파일을 두면 경로를 적지않고 읽을 수 있다.
var XLSX = require("xlsx");
var workbook = XLSX.readFile("tx_list.xlsx");
특정 시트 읽기
this.name에 해당하는게 시트의 이름이다. 시트를 읽고, 그걸 json으로 만들 수 있다.
var worksheet = workbook.Sheets[this.name];
var json_ = XLSX.utils.sheet_to_json(worksheet, { header: 1 })
this.info = json_;
예륻들어 엑셀파일에서 user_name을 뽑고 싶은 경우이다. 읽은 json을 갖고, 거기서 user name을 뽑아내는 것을 했다. 아래와 같은 코드로 뽑아낼 수 잇다.
get_user(except_mem=[]) {
for (const info_ of this.info) {
this.users.add(info_[0])
}
console.log(this.users);
}
예시로 위의 엑셀시트 'test'를 읽어보겠다. 보면 각 행이 하나의 배열값임을 볼 수 있다. 쉽죠?
class tx_info {
name = '';
info = [];
users = new Set();
constructor(name) {
this.name = name;
this.read_excel();
}
read_excel() {
var worksheet = workbook.Sheets[this.name];
var json_ = XLSX.utils.sheet_to_json(worksheet, { header: 1 })
this.info = json_;
}
}
var main = new tx_info('test');
console.log(main.info.length)
console.log(main.info[0])
console.log(main.info[1])
console.log(main.info[2])
console.log(main.info[3])
'개발로 부자되기' 카테고리의 다른 글
차트 레이싱 만들기 (0) | 2023.03.19 |
---|---|
coingecko api 코인 가격 가져오기 (0) | 2023.03.19 |
구글 애드센스 next.js 웹페이지에 추가하기 (0) | 2023.02.17 |
디스코드 시간 표시 명령어 <t:유닉스타임:포맷> (0) | 2023.02.11 |
서비스 개발, 롤모델을 찾다 (0) | 2023.02.07 |