javascript로 excel 다운할 때 input요소 안나타나도록 할 수 없나요?
본문
javascript로 엑셀을 다운받고 있는데 위에처럼 input 체크박스와 텍스트 요소가 나타납니다.
그냥 일반 숫자나 글처럼 나타나도록 할 수 없을까요?
코드는 아래와 같이 사용하고 있습니다..
도움부탁드려요. ㅠ
css적용 방법도 같이부탁드립니다....
$(document).ready(function(){
function itoStr($num){
$num < 10 ? $num = '0'+$num : $num;
return $num.toString();
}
var btn = $('#btntest');
var tbl = 'test';
btn.click(function(e){
var dt = new Date();
var year = itoStr( dt.getFullYear() );
var month = itoStr( dt.getMonth() + 1 );
var day = itoStr( dt.getDate() );
var postfix = year + month + day;
var fileName = "test"+ postfix + ".xls";
var a = document.createElement('a');
var data_type = 'data:application/vnd.ms-excel';
var table_div = document.getElementById( tbl );
var table_html = table_div.outerHTML.replace(/ /g, '%20');
a.href = data_type + ', ' + table_html;
a.download = fileName;
a.click();
e.preventDefault();
});
});
답변 1
상세한 코드에 대해서는 잘 알지 못합니다만, 로직을 대략 다음과 같이 하면 되지 않을까 합니다.
* 로직 : 엑셀 처리 직전에, 제외하고자 하는 셀 하이드 (또는 삭제)
$('input[type=text]').closest('td').hide(); // or $('input[type=text]').closest('td').remove();
$(':checkbox').closest('td').hide();
var table_div = document.getElementById( tbl );
var table_html = table_div.outerHTML.replace(/ /g, '%20');
이러한 방법이 기대한 것처럼 동작이 잘 될지는 모르겠습니다.
(혹시나 참고가 될까 싶어 말씀드린 성격입니다.)
다른 방법은, jquery 를 사용하지 않고, php 로 excel library 를 이용하여 엑셀 다운로드를 구현하는 방법입니다.
/adm/sms_admin/num_book_file_download.php 파일의 소스를 응용하면,
DB 의 내용을 원하는 형태로 엑셀저장하는 것이 가능합니다.
답변을 작성하시기 전에 로그인 해주세요.