[java] 등록한 엑셀파일 읽기

2024. 5. 1. 15:15JSP

사용자가 화면에서 엑셀파일 양식을 내려받고

몇개를 등록했는지 사용자가 엑셀파일을 업로드했을때 특정 키워드로 길이를 읽어서

화면에 보여줘야했습니다.

엑셀파일은 이해를 돕기위해 아래를 참고해주세요.

순번 번호
1 010-xxxx-xxxx
2 010-xxxx-xxxx
3 010-xxxx-xxxx
4 010-xxxx-xxxx
5 010-xxxx-xxxx
6 010-xxxx-xxxx
7 010-xxxx-xxxx

사용자가 위 내용이 담긴 엑셀파일을 업로드하면 화면에서 총 발송 요청건수 : {} 로 보여주려고 합니다.

아래는 적용한 소스입니다.

// HTML input type 파일로 주고 파일 올렷을때 onchange 이벤트로 자바스크립트를 타게합니다.

input type="file" onchange="readExcel()"


// 등록된 엑셀파일 JSON형식으로 변환해서 배열로 읽습니다.

// 배열안에 읽고싶은 걸 match를 통해 (/ /g) 가운데에 넣고 찾습니다.

// length 갯수로 찾았기때문에 보기편하게 replace로 숫자(3)자마다 쉼표(,)를 넣습니다.

function readExcel(){

   let input = event.target;

   let reader = new FileReader();



   reader.onload = function () {

             let data = reader.result;

             let workBook = XLSX.read(data, { type: 'binary' });



             workBook.SheetNames.forEach(function (sheetName) {

                      let rows = XLSX.utils.sheet_to_json(workBook.Sheets[sheetName]);

                      document.getElementById("totalCount").value = '총 발송 요청건수 : '

                      + JSON.stringify(rows).match(/순번/g)?.length.toString()

                      .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');

             })

   };



   reader.readAsBinaryString(input.files[0]);

}