이 기사의 예에서는 jquery php를 사용하여 데이터 테이블 플러그인 데이터를 Excel로 내보내는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
DataTables는 jQuery 테이블 플러그인입니다. 이는 고급 대화형 컨트롤을 추가하고 모든 HTML 양식을 지원하는 점진적인 향상을 기반으로 하는 매우 유연한 도구입니다. 주요 기능:
1. 자동 페이징
2. 인스턴트 테이블 데이터 필터링
3. 데이터 정렬 및 데이터 유형 자동 감지
4. 열 너비 자동 처리
5. CSS를 통해 스타일을 맞춤설정할 수 있습니다
6. 숨겨진 열 지원
7. 사용하기 쉽습니다
8. 확장성과 유연성
9. 국제화
10. 동적으로 테이블 생성
11. 무료
플러그인 주소 http://www.datatables.net/
그런데, 공식 홈페이지 테이블 데이터 내보내기 방식은 플래시를 사용해 데이터를 내보내는 tabletools 플러그인을 사용하고, 중국어 데이터를 지원하지 않는 점이 아쉽네요. 공식 API와 정보를 검색해본 결과 방법을 찾았습니다. jquery와 php를 사용하여 데이터를 내보내는 중입니다.
데이터 내보내기를 위한 자바스크립트 기능
function table2csv(oTable, exportmode, tableElm) { var csv = ''; var headers = []; var rows = []; // Get header names $(tableElm+' thead').find('th').each(function() { var $th = $(this); var text = $th.text(); var header = '"' + text + '"'; // headers.push(header); // original code if(text != "") headers.push(header); // actually datatables seems to copy my original headers so there ist an amount of TH cells which are empty }); csv += headers.join(',') + "\n"; // get table data if (exportmode == "full") { // total data var total = oTable.fnSettings().fnRecordsTotal() for(i = 0; i < total; i++) { var row = oTable.fnGetData(i); row = strip_tags(row); rows.push(row); } } else { // visible rows only $(tableElm+' tbody tr:visible').each(function(index) { var row = oTable.fnGetData(this); row = strip_tags(row); rows.push(row); }) } csv += rows.join("\n"); // if a csv div is already open, delete it if($('.csv-data').length) $('.csv-data').remove(); // open a div with a download link $('body').append('<div class="csv-data"><form enctype="multipart/form-data" method="post" action="/csv.php"><textarea class="form" name="csv">'+csv+'</textarea><input type="submit" class="submit" value="Download as file" /></form></div>'); } function strip_tags(html) { var tmp = document.createElement("div"); tmp.innerHTML = html; return tmp.textContent||tmp.innerText; }
이 기능은 모든 데이터 및 현재 페이지 데이터 내보내기를 지원합니다
// export only what is visible right now (filters & paginationapplied) $('#export_visible').click(function(event) { var oTable; oTable= $('#spdata').dataTable(); event.preventDefault(); table2csv(oTable, 'visible', '#spdata'); }) // export all table data $('#export_all').click(function(event) { var oTable; oTable= $('#spdata').dataTable(); event.preventDefault(); table2csv(oTable, 'full', '#spdata'); })
여기서 #spdata는 테이블의 ID입니다
백엔드 PHP 내보내기 Excel 코드
header("Content-Type: application/vnd.ms-execl"); header("Content-Disposition: attachment; filename=myExcel.csv"); header("Pragma: no-cache"); header("Expires: 0"); $buffer = $_POST['csv']; $buffer=str_replace(",",",\t",$buffer); $buffer=mb_convert_encoding($buffer,"GB2312","UTF-8"); echo $buffer;
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.