Node.js의 Excel 파일에서 데이터를 읽고 분석하는 방법

블로그

Node.js의 Excel 파일에서 데이터를 읽고 분석하는 방법

node.js의 Excel(.xlsx) 스프레드시트에서 데이터를 가져와 분석해야 했던 적이 있습니까? 그렇지 않은 경우 해결 방법이 있습니다.



이 기사에서 우리는 집중할 것입니다,

  1. 스프레드시트 파일에서 데이터 읽기.
  2. 데이터가 반환되는 방식을 이해합니다.
  3. 통합 문서에서 워크시트 목록(이름) 가져오기.
  4. 데이터를 원하는 시트를 지정합니다.

파일 읽기

설정

당신은 가질 필요가있을 것입니다 node.js 설치 .






원하는 Excel 파일을 만들 수 있습니다. 이 기사에서 사용할 간단한 파일의 스크린샷은 아래에 있습니다. 나는 파일 이름을 데이터.xlsx .



이미지제목입니다



나는 사용할 것이다 비주얼 스튜디오 코드 (VS코드).






  1. 터미널 창을 열고 다음을 입력합니다. npm 초기화 . 기본 파일을 만들 기본값을 수락할 수 있습니다. index.js package.json 파일에서 볼 수 있듯이.
  2. 터미널 창에서 다음을 입력하십시오. npm 설치 엑셀 파일 패키지를 설치하려면 모든 것이 작동합니다.
  3. 라는 이름의 파일 생성 index.js 그리고 그것을 엽니다.

엑셀 파일 읽기

이제 파일을 읽을 준비가 되었습니다.

에 다음 코드를 추가하십시오. index.js 파일.

const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx').then((rows) => { }

사이드 노트: require 문에서 다음을 지정했습니다. /마디 . 이것은 다음을 사용하여 브라우저에서 JavaScript로도 수행할 수 있으므로 중요합니다.

import xlsxFile from 'read-excel-file'

코드

첫 번째 줄은 패키지를 가져옵니다.

두 번째 줄은 파일을 읽고 약속을 반환합니다. 읽기가 완료되면 우리는 얻습니다. 배열 .

각 배열(콜백 함수의 행 매개변수)에는 스프레드시트의 행이 포함됩니다. 이들 각각에는 스프레드시트의 세 열에 해당하는 세 개의 배열이 있습니다.

다음 js Firebase 호스팅

원시 데이터 보기

파일에서 데이터를 가져오고 있는지 확인하려면 코드를 수정하세요.

const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx').then((rows) => { console.log(rows); console.table(rows); })

이것을 디버그 모드에서 실행하고, F5, 그런 다음 디버그 없이 실행하고, Ctrl+F5 .

두 가지 모두에서 실행하면 반환되는 내용을 시각화하고 파일에서 데이터를 읽었는지 확인하는 데 도움이 됩니다.

F5

이미지제목입니다

Ctrl+F5

이미지제목입니다

이것은 배열 구조에 대한 더 나은 그림을 제공합니다.

실제 데이터 가져오기

데이터가 배열에 있으므로 쉽게 액세스할 수 있습니다. 데이터에 접근하는 두 가지 방법은 다음과 같습니다.

forEach 루프

각 데이터 조각과 데이터 유형을 보려면 다음과 같이 코드를 수정하십시오.

NS 데이터 매개변수에는 스프레드시트 셀 항목이 포함되어 있습니다.

vue 소재 디자인 아이콘
const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx').then((rows) => { rows.forEach((col)=>{ col.forEach((data)=>{ console.log(data); console.log(typeof data); }) }) })

우리의 목적을 위해 출력은 단지 목록이지만 데이터에 액세스할 수 있고 데이터 유형을 확인할 수 있습니다.

이미지제목입니다

for… 루프에서

for…in 루프를 사용하도록 코드를 수정합니다.

json을 csv로 변환 python pandas
const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx').then((rows) => { for (i in rows){ for (j in rows[i]){ console.dir(rows[i][j]); } } })

실행 시 유사한 출력이 나오지만 이 코드를 통해 배열 구조와 배열 요소에 액세스하는 방법을 더 잘 볼 수 있습니다.

행[i][j] 각 스프레드시트 셀의 데이터를 포함합니다.

여러 시트 다루기

Dev와 Exec이라는 두 개의 워크시트가 있다면 어떻게 될까요?

기본적으로 읽을 때 첫 번째 시트를 읽습니다. 그러나 우리는 할 수 있습니다.

  • 시트 이름 목록 가져오기
  • 데이터를 원하는 시트를 지정합니다.

수정된 엑셀 파일

Excel 파일을 수정했습니다. 데이터.xlsx , 두 장을 갖습니다.

이미지제목입니다
개발 시트

이미지제목입니다
실행 시트

시트 이름 목록 가져오기

시트 이름은 객체의 배열 . 각 객체는 구조를 가지고 있으며,

{이름 : '시트 이름'}

우리의 경우 이 배열을 반환합니다. [{이름 : '개발자'}, {이름 : '실행'}]

다음과 같이 코드를 수정하여 워크시트 목록을 가져옵니다.

const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx', { getSheets: true }).then((sheets) => { sheets.forEach((obj)=>{ console.log(obj.name); }) })

여기에서 객체 매개변수를 전달했습니다. { getSheets: 사실 }.

그런 다음 forEach 루프를 사용하여 시트 배열을 반복하고 각 객체의 이름 재산.

이미지제목입니다

워크시트 이름 액세스. 개발자, 간부.

데이터를 가져올 시트 지정

원하는 워크시트를 지정하기 위해 {시트: } 개체 매개변수. 이것은 두 가지 형태가 있습니다. 시트 번호 또는 시트 이름으로 지정할 수 있습니다. 시트 2에 액세스하려면 다음 중 하나를 사용할 수 있습니다.

  • {시트: 2}
  • {시트: '임원'}

Exec 시트의 데이터에 액세스하려면 다음과 같이 코드를 수정하십시오.

const xlsxFile = require('read-excel-file/node'); xlsxFile('./Data.xlsx', { sheet: 'Exec' }).then((rows) => { for (i in rows){ for (j in rows[i]){ console.log(rows[i][j]); } } })

이미지제목입니다
Sheet2, Exec, 데이터

결론

npm 패키지는 파일을 읽는 모든 작업을 수행합니다. 중요한 부분은 데이터가 반환되는 방식입니다. 2차원 배열로 반환됩니다.

치아 구입처

이것을 알면 데이터를 얻고 작업하는 데 대한 통찰력을 얻을 수 있습니다. 워크시트 이름을 얻을 수 있다는 것을 알면 필요한 경우 전체 통합 문서를 처리할 수 있습니다.

읽어 주셔서 감사합니다!

#node-js #자바스크립트 #excel #프로그래밍 #webdev