[Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드

2025. 5. 8. 13:30·Node.js
목차
  1. 주요 Excel 라이브러리 비교
  2. xlsx (SheetJS) - 가장 인기 있는 엑셀 라이브러리
  3. 언제 사용하면 좋을까?
  4. 설치
  5. 기본 사용법 예제
  6. 엑셀 파일 읽기 (.xlsx, .csv 등)
  7. JSON → Excel 파일로 저장하기
  8. 고급 기능
  9. 헤더 행 지정하여 JSON 변환
  10. CSV 읽기 & 쓰기
  11. 포맷 지원
  12. 마무리 – 어떤 걸 언제 쓰면 좋을까?
728x90
반응형
SMALL

Node.js에서 Excel 파일을 다뤄야 할 일이 생기면 가장 먼저 고민되는 게 바로 라이브러리 선택입니다. 오늘은 대표적인 Excel 관련 라이브러리들의 특징, 그리고 가장 널리 쓰이는 xlsx (SheetJS)의 사용법과 예제, 언제 사용하면 좋은지까지 한눈에 정리해봤습니다.


주요 Excel 라이브러리 비교


라이브러리 특징 장점 단점 설치
xlsx (SheetJS) 가장 널리 쓰이는 라이브러리 다양한 포맷 지원 (.xls, .xlsx, .csv, 등), 안정성 높음 복잡한 Excel 서식(차트, 수식 등)은 제한적 npm install xlsx
exceljs .xlsx 전문 스타일링, 수식, 머지 셀 등 UI 처리 가능 .xls(구버전) 미지원 npm install exceljs
node-xlsx 경량화된 xlsx wrapper 빠르고 가볍고 간단 고급 기능 부족 npm install node-xlsx
csv-parser / fast-csv CSV 전용 처리 매우 빠름, 스트리밍 처리에 강함 Excel 서식 불가 npm install csv-parser
 

복잡한 Excel 서식이 필요하면 exceljs, 일반적인 데이터 변환에는 xlsx가 가장 무난합니다.


xlsx (SheetJS) - 가장 인기 있는 엑셀 라이브러리

언제 사용하면 좋을까?

  • Excel 파일을 읽어서 JSON으로 변환하거나,
  • JSON 데이터를 Excel로 저장해야 할 때
  • .csv, .xls, .xlsx 등 다양한 포맷을 다뤄야 할 때
  • 브라우저와 Node.js 양쪽에서 동일하게 사용할 수 있어야 할 때

설치

npm install xlsx

기본 사용법 예제

엑셀 파일 읽기 (.xlsx, .csv 등)

const XLSX = require('xlsx');

const workbook = XLSX.readFile('data.xlsx'); // or .csv
const sheetName = workbook.SheetNames[0];
const sheet = workbook.Sheets[sheetName];

// 2차원 배열로 읽기
const rows = XLSX.utils.sheet_to_json(sheet, { header: 1 });
console.log(rows);

JSON → Excel 파일로 저장하기

const XLSX = require('xlsx');

const data = [
  { name: "Alice", age: 25 },
  { name: "Bob", age: 30 }
];

const worksheet = XLSX.utils.json_to_sheet(data);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "Users");

XLSX.writeFile(workbook, 'output.xlsx');

고급 기능

헤더 행 지정하여 JSON 변환

const rows = XLSX.utils.sheet_to_json(sheet, { header: 1 });
const header = rows[2]; // 예: 3번째 행을 헤더로
const dataRows = rows.slice(3);

const json = dataRows.map(row => {
  const obj = {};
  header.forEach((key, i) => obj[key] = row[i]);
  return obj;
});

CSV 읽기 & 쓰기

const workbook = XLSX.readFile('data.csv');
const sheet = workbook.Sheets[workbook.SheetNames[0]];
const json = XLSX.utils.sheet_to_json(sheet);

포맷 지원

포맷읽기쓰기

 

포맷 읽기 쓰기
.xlsx 가능 가능
.xls 가능 가능
.csv 가능 가능
.ods 가능 가능
.json 가능 가능

마무리 – 어떤 걸 언제 쓰면 좋을까?

  • 단순한 데이터 파일 읽기/쓰기: xlsx
  • 스타일, 수식, 서식 등 정교한 엑셀 생성: exceljs
  • 빠른 CSV 처리 & 대용량 스트리밍: csv-parser, fast-csv
  • 테스트용 가볍게 쓰기: node-xlsx

엑셀 자동화를 위한 E2E 테스트 시나리오, CSV 로그 분석, IoT 센서 데이터 추출 등 다양한 활용에 쓰일 수 있습니다.

728x90
반응형
LIST

'Node.js' 카테고리의 다른 글

[Node.js] Node.js에서 MSSQL 데이터베이스 연결하기  (0) 2025.06.20
[Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기  (0) 2025.06.16
[Node.js] 미들웨어란?  (0) 2025.05.28
[Node.js] Node.js Express 기본 및 주요 모듈 정리  (0) 2025.05.20
[Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유  (0) 2025.04.29
  1. 주요 Excel 라이브러리 비교
  2. xlsx (SheetJS) - 가장 인기 있는 엑셀 라이브러리
  3. 언제 사용하면 좋을까?
  4. 설치
  5. 기본 사용법 예제
  6. 엑셀 파일 읽기 (.xlsx, .csv 등)
  7. JSON → Excel 파일로 저장하기
  8. 고급 기능
  9. 헤더 행 지정하여 JSON 변환
  10. CSV 읽기 & 쓰기
  11. 포맷 지원
  12. 마무리 – 어떤 걸 언제 쓰면 좋을까?
'Node.js' 카테고리의 다른 글
  • [Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기
  • [Node.js] 미들웨어란?
  • [Node.js] Node.js Express 기본 및 주요 모듈 정리
  • [Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유
junhyeokkk
junhyeokkk
나의 개발자 성장기
백엔드 개발자 준혁의 성장일지나의 개발자 성장기
  • junhyeokkk
    백엔드 개발자 준혁의 성장일지
    junhyeokkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (59) N
      • Flutter (13)
      • 개발환경구축 (3)
      • HTTP (0)
      • CS지식 (5)
      • 코딩테스트 (10)
      • JAVA (7)
      • 데이터베이스 (7)
      • Node.js (9)
      • TypeScript (1) N
      • Azure (3)
      • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    db
    백엔드
    node.js
    라이브러리
    개발자준비
    CS지식
    js
    MSsql
    마이크로소프트sql
    자바
    DART
    Microsoft
    디자인패턴
    node
    Typescript
    데이터베이스
    programmers
    코딩테스트
    Flutter
    RDBMS
    백엔드개발
    개발자
    azure
    sql튜토리얼
    Java
    cosmos db
    nodejs
    백엔드개발자
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
junhyeokkk
[Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.