52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
|
|
|
||
|
|
$(document).on('click', '#downExcel', function (){
|
||
|
|
exportExcel();
|
||
|
|
})
|
||
|
|
|
||
|
|
function exportExcel(){
|
||
|
|
// step 1. workbook 생성
|
||
|
|
var wb = XLSX.utils.book_new();
|
||
|
|
|
||
|
|
// step 2. 시트 만들기
|
||
|
|
var newWorksheet = excelHandler.getWorksheet();
|
||
|
|
|
||
|
|
// step 3. workbook에 새로만든 워크시트에 이름을 주고 붙인다.
|
||
|
|
XLSX.utils.book_append_sheet(wb, newWorksheet, excelHandler.getSheetName());
|
||
|
|
|
||
|
|
// step 4. 엑셀 파일 만들기
|
||
|
|
var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'});
|
||
|
|
|
||
|
|
// step 5. 엑셀 파일 내보내기
|
||
|
|
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName());
|
||
|
|
}
|
||
|
|
|
||
|
|
var excelHandler = {
|
||
|
|
getExcelFileName : function(){
|
||
|
|
return '견문통계'+'_'+getToday()+'.xlsx'; //파일명
|
||
|
|
},
|
||
|
|
getSheetName : function(){
|
||
|
|
return 'Table Test Sheet'; //시트명
|
||
|
|
},
|
||
|
|
getExcelData : function(){
|
||
|
|
return document.getElementById('tableData'); //TABLE 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;
|
||
|
|
}
|
||
|
|
|
||
|
|
function getToday(){
|
||
|
|
var date = new Date();
|
||
|
|
var year = date.getFullYear();
|
||
|
|
var month = ("0" + (1 + date.getMonth())).slice(-2);
|
||
|
|
var day = ("0" + date.getDate()).slice(-2);
|
||
|
|
|
||
|
|
return year + "-" + month + "-" + day;
|
||
|
|
}
|