[JS] excel 다운로드
2020. 11. 8. 18:52ㆍ프론트엔드/JAVASCRIPT
728x90
서버호출 없이 JS만으로 엑셀다운로드 구현
//엑셀다운로드시 호출함수
function fnExcelReport(id, title) {
var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
tab_text = tab_text + '<head><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
tab_text = tab_text + '<xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'
tab_text = tab_text + '<x:Name>Test Sheet</x:Name>';
tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';
tab_text = tab_text + "<table border='1px'>";
//엑셀다운로드시 저장될 테이블 지정하여 복사
var exportTable = $('#resultTable').clone();
//복사된 테이블에서 input 태그 제거
exportTable.find('input').each(function (index, elem) { $(elem).remove(); });
tab_text = tab_text + exportTable.html();
tab_text = tab_text + '</table></body></html>';
var data_type = 'data:application/vnd.ms-excel';
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var fileName = title + '.xls';
//Explorer 환경에서 다운로드
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
if (window.navigator.msSaveBlob) {
var blob = new Blob([tab_text], {
type: "application/csv;charset=utf-8;"
});
navigator.msSaveBlob(blob, fileName);
}
} else {
var blob2 = new Blob([tab_text], {
type: "application/csv;charset=utf-8;"
});
var filename = fileName;
var elem = window.document.createElement('a');
elem.href = window.URL.createObjectURL(blob2);
elem.download = filename;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
}
}
728x90
'프론트엔드 > JAVASCRIPT' 카테고리의 다른 글
[JS] 문서 로드시점(onload,$(document).ready()) (0) | 2020.11.19 |
---|---|
[JS] 반복문 (0) | 2020.11.11 |
[JS] 헤더 고정 스크롤 구현 (0) | 2020.11.07 |
[JS 객체(Object) (0) | 2020.06.18 |
[JS] javascript:void(0) 과 # (0) | 2020.06.08 |