[Node.js] xlsx 모듈

hahaha·2021년 11월 1일
0

Node.js

목록 보기
8/10

excel 모듈

  • 비동기 방식
  • 2차원 배열 반환

xlsx 모듈

  • 동기 방식이나, 비동기 방식 설정 가능
  • json 객체 반환

설치하기

$ npm i xlsx

모듈 사용하기

// 방법1
const xlsx = require('xlsx');

// 방법2
import * as xlsx from 'xlsx';

파일 읽기

const workbook = xlsx.read(data, read_opts);

const workbook = xlsx.readFile(filename, read_opts);

시트 정보 추출

// 첫 번째 시트 이름
const sheetName = workbook.SheetNames[0];

// 시트 이름에 따른 정보
const sheet = workbook.Sheets[sheetName];

엑셀 시트 데이터 읽기

// json 형태로 데이터 표시
const data = xlsx.utils.sheet_to_json(sheet);

// [ { name: 'kim', age: 23 }, { name: 'park', age: 24 } ]

XLSX.utils

(반대도 가능)

  • XLSX.utils.sheet_to_csv : generates CSV
  • XLSX.utils.sheet_to_txt : generates UTF16 Formatted Text
  • XLSX.utils.sheet_to_html : generates HTML
  • XLSX.utils.sheet_to_json : generates an array of objects
  • XLSX.utils.sheet_to_formulae : generates a list of formulae

파일 업로드 예제

파일 쓰기

// array 데이터 이용
const xlsx = require('xlsx');
const path = require('path');

const arrayData = [['kim', 23], ['park', 24]];

const workbook = xlsx.utils.book_new();
const worksheet = xlsx.utils.aoa_to_sheet(arrayData);

xlsx.utils.book_append_sheet(workbook, worksheet2, 'sheet1');
xlsx.writeFile(workbook, path.join(__dirname, 'array_to_sheet_result.xlsx'));

// json 데이터 이용
const jsonData = [
    {name: 'kim', age: 23},
    {name: 'park', age: 24},
]

const workbook = xlsx.utils.book_new();
const worksheet = xlsx.utils.json_to_sheet(jsonData);

xlsx.utils.book_append_sheet(workbook, worksheet, 'sheet1');
xlsx.writeFile(workbook, path.join(__dirname, 'json_to_sheet_result.xlsx'));

파일 다운로드 예제

profile
junior backend-developer 👶💻

0개의 댓글