반응형
write-excel-file
엑셀 파일을 만들어 준다.
> npm install write-excel-file --save
코드
const writeXlsxFile = require("write-excel-file/node");
const fs = require("fs");
const HEADER_ROW = [
{
value: "Name",
fontWeight: "bold",
},
{
value: "Birth",
fontWeight: "bold",
},
{
value: "phone",
fontWeight: "bold",
},
{
value: "region",
fontWeight: "bold",
},
];
const DATA_ROW_1 = [
// "Name"
{
type: String,
value: "oh",
},
// "Birth"
{
type: Date,
value: new Date(),
format: "mm/dd/yyyy",
},
// "Phone"
{
type: Number,
value: 1012345678,
},
// "Region"
{
type: String,
value: "Seoul",
},
];
const data = [HEADER_ROW, DATA_ROW_1];
const makeExcel = async () => {
if (!fs.existsSync("./excel")) {
// excel 폴더가 존재하지 않는 경우 excel 폴더를 생성한다.
fs.mkdirSync("./excel");
}
await writeXlsxFile(data, {
filePath: "./excel/member.xlsx",
});
};
makeExcel();
위와 같이 작성 후 실행시켜보면, excel 폴더가 생성되고 그 안에 아래와 같은 member.xlsx 파일이 만들어진 것을 확인할 수 있다.
read-excel-file
엑셀 파일을 읽어온다.
> npm install read-excel-file --save
예시
폴더 구조
rootDir
L index.js // 엑셀 코드 읽어올 코드 작성하는 부분
L member.xlsx // 해당 엑셀 파일
코드
const readXlsxFile = require('read-excel-file/node');
const fs = require('fs');
readXlsxFile("./member.xlsx").then((rows) => {
console.log(rows);
let jsonData = [];
for (let i = 0; i < rows.length; i++) {
if (i !== 0) {
const inputData = {
number: rows[i][0],
name: rows[i][1],
team: rows[i][2],
phone: rows[i][3],
};
jsonData.push(inputData);
}
}
const jsonDataToString = JSON.stringify(jsonData);
fs.writeFileSync("./dataToJSon.json", jsonDataToString);
});
처음에 콘솔로 rows 찍은 것을 확인해보면 아래와 같이 나온다.
fs.writeFileSync의 경우 fs.writeFileSync([경로], [해당 경로의 파일에 입력될 데이터])
JSON.stringify()는 자바스크립트의 값이나 객체를 json 파일로 변환하여 주는 역할을 한다.
그리고 위의 코드를 실행시키면 dataToJson.json 파일이 아래와 같이 생성된다.
혹은 한 행에 해당하는 정보를 아래 별도의 파일로 관리하고 싶은 경우 아래와 같이 코드를 작성할 수 있다.
const readXlsxFile = require("read-excel-file/node");
const fs = require("fs");
readXlsxFile("./member.xlsx").then((rows) => {
let jsonData = [];
for (let i = 0; i < rows.length; i++) {
if (i !== 0) {
const inputData = {
number: rows[i][0],
name: rows[i][1],
team: rows[i][2],
phone: rows[i][3],
};
const jsonData = JSON.stringify(inputData);
if (!fs.existsSync("./json")) {
// json 폴더가 존재하지 않는 경우 json 폴더를 생성한다.
fs.mkdirSync("./json");
}
fs.writeFileSync(`./json/member${rows[i][0]}.json`, jsonData);
}
}
});
위의 코드를 실행하면 아래와 같이 json 폴더가 생성되고, 해당 폴더 안에 각 행들이 별도의 파일로 생성된다.
출처
https://www.npmjs.com/package/read-excel-file
반응형
'Javascript > Node.js' 카테고리의 다른 글
[ Node.js ] - ngrok 이용하여 로컬 서버 외부에서 접속 허용하기 (0) | 2022.08.29 |
---|---|
[ Node.js ] - sendgrid 통해서 메일 보내기 (0) | 2022.08.20 |
[ Node.js ] - type module에서 require 사용하기 (0) | 2022.08.17 |
[ Node.js ] - lodash 사용하기 (0) | 2022.08.15 |
[ Node.js ] - winson이용하여 로그 남기기 (0) | 2022.08.14 |