1

javascript を使用して、html テーブルを Excel にエクスポートしたいと考えています。以下のスクリプトを使用しました。その正常に動作します。特殊文字を持つセルはほとんどないため、エスケープしました。ただし、この特殊文字セルの後の行とコンテンツはダウンロードされません。助けてください。コードは次のとおりです。

<script type="text/javascript">
            $(document).ready(function(){      
    $("#exportToExcel").click(function() {  
        var data='<table border="1" class="csstable">'+$("#myTable").html().replace(/^[a-zA-Z!”$%&’()*\+,\/;\[\\\]\^_`{|}~<>]+$/gi, '')+'</table>';
                $('body').prepend("<form method='post' action='exporttoexcel.php' style='display:none' id='ReportTableData'><input type='text' name='tableData' value='"+data+"' ></form>");
         $('#ReportTableData').submit().remove();
         return false;
    });

});
</script>



<?php  
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=".date('d-m-Y').'-'.date("H:i:s").'-'."myfile.xls");
header("Content-Transfer-Encoding: binary ");

echo strip_tags($_POST['tableData'],'<table><th><tr><td>');  
?>
4

1 に答える 1

0

これがあなたが望むものだと思います:http://jsfiddle.net/9zaH7/

  1. テーブル html を取得し、新しいテーブルにラップします。この部分は不要のようですが、スタイリング/クラスを削除する必要があるのではないでしょうか?

  2. テーブル全体をフォーム テキスト フィールドにエスケープします。

    $(document).ready(function(){
    $("#exportToExcel").click(function() {

        var data='<table border="1" class="csstable">'+$("#myTable").html()+'</table>';
        data=escape(data);
                $('body').prepend("<form method='post' action='exporttoexcel.php' style='display:block' id='ReportTableData'><input type='text' name='tableData' value='"+data+"'></form>");
    
         return false;
    });});
    
于 2013-06-25T09:45:37.820 に答える