Node.js의 Excel 파일에서 데이터를 읽고 분석하는 방법
node.js의 Excel(.xlsx) 스프레드시트에서 데이터를 가져와 분석해야 했던 적이 있습니까? 그렇지 않은 경우 해결 방법이 있습니다.
이 기사에서 우리는 집중할 것입니다,
- 스프레드시트 파일에서 데이터 읽기.
- 데이터가 반환되는 방식을 이해합니다.
- 통합 문서에서 워크시트 목록(이름) 가져오기.
- 데이터를 원하는 시트를 지정합니다.
파일 읽기
설정
당신은 가질 필요가있을 것입니다 node.js 설치 .
원하는 Excel 파일을 만들 수 있습니다. 이 기사에서 사용할 간단한 파일의 스크린샷은 아래에 있습니다. 나는 파일 이름을 데이터.xlsx .
나는 사용할 것이다 비주얼 스튜디오 코드 (VS코드).
- 터미널 창을 열고 다음을 입력합니다. npm 초기화 . 기본 파일을 만들 기본값을 수락할 수 있습니다. index.js package.json 파일에서 볼 수 있듯이.
- 터미널 창에서 다음을 입력하십시오. npm 설치 엑셀 파일 패키지를 설치하려면 모든 것이 작동합니다.
- 라는 이름의 파일 생성 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