Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- cookie
- JavaScript
- 공룡게임
- jest
- Dinosaur
- class
- MongoDB
- 자료구조
- nodejs
- TypeScript
- 정렬
- flask
- MySQL
- Queue
- Python
- AWS
- nestjs
- GIT
- typeORM
- OCR
- Nest.js
- Sequelize
- dfs
- react
- mongoose
- 게임
- Bull
- game
- Express
Archives
- Today
- Total
포시코딩
[NestJS] JSON to Excel 본문
728x90
npm install xlsx fs
import * as fs from 'fs';
import * as XLSX from 'xlsx';
// ... 생략
jsonToExcel(res) {
const originalJSON = {
"AD": {
"name": "Andorra",
"phone": "376",
"flag": "🇦🇩"
},
"AE": {
"name": "United Arab Emirates",
"phone": "97",
"flag": "🇦🇪"
},
// ...
};
const transformedArray = Object.entries(originalJSON).map(([iso2, country]) => ({
name: country.name,
phone: country.phone,
iso2: iso2
}));
// step 1. workbook 생성
const wb = XLSX.utils.book_new();
// step 2. 시트 만들기
const newWorksheet = XLSX.utils.json_to_sheet(transformedArray);
// step 3. workbook에 새로만든 워크시트에 이름을 주고 붙임.
XLSX.utils.book_append_sheet(wb, newWorksheet, 'Sheet1');
const wbOptions = { bookType: 'xlsx', type: 'binary' };
const filename = 'test.xlsx';
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
// step 4. 파일을 로컬에 생성합니다.
XLSX.writeFile(wb, filename, wbOptions); // write workbook file
// step 5. 생성된 파일을 client 에 전송합니다.
const stream = fs.createReadStream(filename); // create read stream
stream.pipe(res);
}
참고
https://velog.io/@peter0618/NestJS-excel-업로드다운로드
728x90