[NestJS] read excel file With exceljs (DiskStorage)

Programming/Node.js 2024. 12. 6. 03:17 Posted by 생각하는로뎅
반응형

NestJS 에서는 파일 업로드시 메모리에서 읽는 방식(MemoryStorage)
과 디스크에서 읽는 방식(DiskStorage) 으로 구성되어 있다.

 

아래 방법은 DiskStorage 를 사용했을때, 해당 경로에 있는 Excel 파일을 읽어서 출력해주는 방법이다.

 

1. npm 설치

npm install exceljs

 

 

2. 많은 예제를 참고하여   DiskStorage 으로 구성되어 있을 경우  file.path 를 이용하여 파일 경로를 읽어서 엑셀 파일 내용을 읽어 온다.

import { Cell, Row, Workbook } from 'exceljs';

...

  // 엑셀 업로드
  @Post('uploadExcel')
  @UseInterceptors(FileInterceptor('file'))
  async uploadExcel(
      @UploadedFile() file : Multer.file) {
    
    ...
    
      var workbook = new Workbook();
      await workbook.xlsx.readFile(file.path);
      var sheet = workbook.worksheets[0];

      // 1 ~ N ROW
      var rows : Row[] = sheet.getRows(1, sheet.rowCount);
      var cell : Cell;

      rows.forEach(row => {

        // 1 ~ N Cell
        row.eachCell((cell: Cell, colNumber: number)=>{

          Logger.debug("colNumber, cell value ", cell.value, colNumber);

        })

      });
  
  ....
 }

 

반응형