0

HTML テーブル内に約 5000 行 (tr) があり、それぞれに 10 列 (td) があります。今、次のjQueryコードを使用して、このHTMLテーブル全体をExcelにエクスポートしようとしています:

var test = $('#data');
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(test.html()));

DataTables.net、jqWidgets、jqGrid などの他の多くの jQuery プラグインも試しましたが、ブラウザがクラッシュするたびにページを再度リロードする必要があります。

4

4 に答える 4

1

window.open()には、この投稿で十分に説明されている範囲と制限があります: jQuery と html を使用して CSV にエクスポート

あなたの懸念のために、私は2500行でテストしましたが、うまくいきました。(jsfiddler にそれほど多くのデータをアップロードすることはできませんが、5000 行でも機能すると確信しています。)

また、html テーブルをコンテナー DIV にラップしていると思われます。HTMLテーブルをDIVに入れて、次のように使用してください-

$("[id$=myButtonControlID]").click(function(e) {
    window.open('data:application/vnd.ms-excel,' + encodeURIComponent( $('div[id$=divTableDataHolder]').html()));
    e.preventDefault();   });

http://jsfiddle.net/AnilAwadh/wJyWm/

encodeURIComponent()は、データに特殊文字があり、その使用がオプションである場合に特殊文字をエンコードするために使用される Javascript 関数です。

于 2013-07-18T16:25:31.373 に答える
0

IE 以外のブラウザをターゲットにしている場合は、次のことを試してください。

var test = $('#data');
window.open('data:application/vnd.ms-excel,' + 
            encodeURIComponent(test[0].outerHTML));

Chrome を使用してここで動作することを確認してください: http://jsfiddle.net/56tbb/2/

ブラウザとしてInternet Explorerをターゲットにしている場合、現在の方法は機能しないため、別の方法を探す必要があります。MSDN ライブラリのdata Protocolトピックには次のように記載されています。

データ URI は、次の要素および/または属性に対してのみサポートされています。

object (images only)
img
input type=image
link
CSS declarations that accept a URL, such as background, backgroundImage, 
and so on.

データ URI はネストできます。

セキュリティ上の理由から、データ URI はダウンロードされたリソースに制限されています。データ URI は、ナビゲーション、スクリプト作成、フレームまたは iframe 要素への入力には使用できません。

于 2013-07-19T14:38:19.923 に答える
0

私の友人はこのアプローチを提案しました - ブロブを作成し、navigator.msSaveBlob() または navigator を使用してみてください。msSaveOrOpenBlob() .

    var csvContent=data; 
    var blob = new Blob([csvContent],{
        type: "text/csv;charset=utf-8;",
    });

    navigator.msSaveBlob(blob, "filename.csv") 
//or navigator. msSaveOrOpenBlob(blob, "filename.csv")

msdn.microsoft.com/en-us/library/ie/hh772331(v=vs.85).aspx

于 2013-11-27T17:02:26.303 に答える
0

このプラグインを試すことができます - tableExport.js

HTML:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="src/jquery.table2excel.js"></script>
<body>
<tr class="noExl">
  <th>#</th>
  <th>Column heading</th>
  <th>Column heading</th>
  <th>Column heading</th>
</tr>
</body>

jQuery:

$("button").click(function(){
  $("#table2excel").table2excel({
    // exclude CSS class
    exclude: ".noExl",
    name: "Excel Document Name"
  });
});

プラグインのダウンロード: http://www.jqueryscript.net/table/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel.html

于 2015-11-23T08:48:59.260 に答える