[TypeScript] Excel Data JSON 형태로 변환하기

맹주완·2024년 2월 5일

최근에 한 프로젝트에서 PowerPlatform을 활용하여 개발을 하다가 나온 문제이다.

"PowerApps에서 ExcelFile 데이터를 DB에 업로드해주세요"

순간 듣고 Power Apps로 구현이 가능한가..? 생각이 들었다.
그렇게 생각했던 이유는
"Power Apps는 가벼운 프로그램 또는 App을 만들어서 구현하기 위해 나온 NoCode 기반의 PlatForm인데, Apps에서 기본적으로 지원하지 않으면 안 되는 것 아니야?"

라는 생각을 하게 되었다.

그래서 어떻게 할지 심히 고민하고 있었는데...

구글링을 해본 결과 PCF (PowerApps Component Framework) 라는 것이 있다는 걸 알게 되었고, TypeScript + JQuery 또는 TypeScript + React로 개발을 해야 된다는 걸 알게 되었다. (NoCode라고 대차게 홍보하고 Code를 쓴다.)

FrontEnd 해 본 적도 없고, Script 언어를 싫어하던 나에게 큰 난간이 찾아왔지만 (WinForm만 해봤어요) 내가 언제나 시도 했던 것 처럼 벽돌에 계란치 듯이 한번 도전하자 하는 생각으로 해보게 되었다.



이번 과정은 엑셀 라이브러리 설치 및 코드를 한번 간략하게 보도록 하겠다.

🖊 라이브러리 설치

간단하다. 라이브러리는 "xlsx" 라이브러리만 설치하면 된다.

npm install xlsx

하면 자동으로 라이브러리가 설치가 될 것이다.

🖊 소스코드

핵심 소스코드를 먼저 작성을 해보도록 하겠다.

//엑셀 경로 변수
var Path = '엑셀 경로';

//파일 읽기 클래스 생성
var reader = new FileReader();

//파일 읽는 클래스 생성
reader.onload = function(event){
    //파일 읽은 데이터 값 넣기 (바이너리)
    var data = event.target!.result;

    //엑셀 파일 읽기
    var workbook = xlsx.read(data,{
      type: 'binary'
    });

    //엑셀 시트 지정
    const sheet = workbook.Sheets["읽을 시트"];
    
    //Excel Data To JSON
    var ExcelToJSONString = xlsx.utils.sheet_to_json(sheet);
}

//비동기적으로 파일의 데이터를 읽을 때 사용
reader.readAsBinaryString(Path);

아주 기본적인 내용이지만 우리 파일이 어떤 형태로 저장되고, 처리 되는지만 안다면 충분히 할 수 있는 내용이라고 생각이 든다.
추후에 Git으로 해서 전체 프로젝트 소스코드를 공유해보도록 하겠다.


(이럴거면 왜 Power Apps를 NoCode라고 홍보하고 다니는거야)

profile
코드도 디버깅~ 내 인생도 디버깅~

0개의 댓글