ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryデータをExcelにエクスポートするコード例の詳細な説明

jqueryデータをExcelにエクスポートするコード例の詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-07-22 09:25:592426ブラウズ

DataTables は jQuery テーブル プラグインです。これは、高度なインタラクティブ コントロールとあらゆる HTML フォームのサポートを追加する、漸進的な機能拡張に基づいた非常に柔軟なツールです。主な特徴:

しかし残念ながら、公式サイトのテーブルデータのエクスポート方法はtabletoolsプラグインを使用し、データのエクスポートにフラッシュを使用し、中国語データをサポートしていません 公式APIと情報を検索したところ、使用方法を見つけました。 jquery と php を使用してデータをエクスポートします。

データをエクスポートするJavaScript関数


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+&#39; tbody tr:visible&#39;).each(function(index) { 
        var row = oTable.fnGetData(this); 
        row = strip_tags(row); 
        rows.push(row); 
      }) 
    } 
    csv += rows.join("\n"); 
    // if a csv p is already open, delete it 
    if($(&#39;.csv-data&#39;).length) $(&#39;.csv-data&#39;).remove(); 
    // open a p with a download link 
    $(&#39;body&#39;).append(&#39;<p class="csv-data"><form enctype="multipart/form-data" method="post" action="/csv.php"><textarea class="form" name="csv">&#39;+csv+&#39;</textarea><input type="submit" class="submit" value="Download as file" /></form></p>&#39;); 
} 
function strip_tags(html) { 
  var tmp = document.createElement("p"); 
  tmp.innerHTML = html; 
  return tmp.textContent||tmp.innerText; 
}

関数は、すべてのデータと現在のページデータのエクスポートをサポートします


// export only what is visible right now (filters & paginationapplied)
$(&#39;#export_visible&#39;).click(function(event) {  
   var oTable; 
   oTable= $(&#39;#spdata&#39;).dataTable(); 
   event.preventDefault(); 
   table2csv(oTable, &#39;visible&#39;, &#39;#spdata&#39;); })
   // export all table data 
$(&#39;#export_all&#39;).click(function(event) {  
  var oTable; 
  oTable= $(&#39;#spdata&#39;).dataTable(); 
  event.preventDefault(); 
 table2csv(oTable, &#39;full&#39;, &#39;#spdata&#39;); })

#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[&#39;csv&#39;];     
$buffer=str_replace(",",",\t",$buffer); 
$buffer=mb_convert_encoding($buffer,"GB2312","UTF-8");  
echo $buffer;

以上がjqueryデータをExcelにエクスポートするコード例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。