Develop

[Javascript] html 테이블을 엑셀 다운로드 하기

issuemaker99 2024. 8. 30. 14:41
728x90

▶ SheetJS 라이브러리

<!-- Sheet JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.3/xlsx.full.min.js"></script>
<!--FileSaver savaAs 이용 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"></script>

 

[xlsx.full.min.js 다운로드 이용]

https://www.cdnpkg.com/xlsx/file/xlsx.full.min.js/?id=78603

 

XLSX.FULL.MIN.JS: DOWNLOAD - CDNPKG

xlsx.full.min.js is available in 105 versions of xlsx. 0.15.6 0.15.5 0.15.4 0.15.1 0.15.0 0.14.5 0.14.4 0.14.3 0.14.2 0.14.1 0.14.0 0.13.5 0.13.4 0.13.3 0.13.2 0.13.1 0.13.0 0.12.13 0.12.12 0.12.11 0.12.10 0.12.9 0.12.8 0.12.7 0.12.6 0.12.5 0.12.4 0.12.3 0

www.cdnpkg.com

 

[FileSaver.js 다운로드 이용]

https://www.cdnpkg.com/FileSaver.js/file/FileSaver.min.js/#

 

FILESAVER.MIN.JS: DOWNLOAD - CDNPKG

FileSaver.min.js is available in 9 versions of FileSaver.js. 1.3.8 1.3.3 1.3.2 1.3.1 1.3.0 1.2.2 1.2.1 1.2.0 1.0.0

www.cdnpkg.com

 

▶ 예제 소스 

function exportExcel(){ 
  // 1. workbook 생성
  var wb = XLSX.utils.book_new();

  // 2. 시트 만들기 
  var newWorksheet = excelHandler.getWorksheet();

  // 3. workbook에 새로만든 워크시트에 이름을 주고 붙인다.  
  XLSX.utils.book_append_sheet(wb, newWorksheet, excelHandler.getSheetName());

  // 4. 엑셀 파일 만들기 
  var wbout = XLSX.write(wb, {bookType:'xlsx',  type: 'binary'});

  // 5. 엑셀 파일 내보내기 
  saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName());
}

var excelHandler = {
    getExcelFileName : function(){
        return $("#anpTrnNo").val() + '_수강자목록.xlsx';	// 엑셀 파일명
    },
    getSheetName : function(){
        return $("#anpTrnNo").val() + '_수강자목록';	// 엑셀 시트명
    },
    getExcelData : function(){
        return document.getElementById('tbl_trnTrneInfrList'); 	// 테이블 id
    },
    getWorksheet : function(){
        return XLSX.utils.table_to_sheet(this.getExcelData());
    }
}

function s2ab(s) { 
  var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
  var view = new Uint8Array(buf);  //create uint8array as viewer
  for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
  return buf;    
}

 

 

 

 

LIST