13

HTMLをExcelにエクスポートする次の関数があります。

function generateexcel(tableid) {
  var table= document.getElementById(tableid);
  var html = table.outerHTML;
  window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}

問題は、保存する特定のファイル名を付けられないため、ユーザーが次のようなものを取得することです。

%3Ctable%20id%3D%22tableRslts%22%20tabindex%3D%2235%22%20 ファイルを保存しますか?

そして、保存されたファイルは次のようになります。

IytvT8Jo.xls.part.xls(少なくとも、使用するターゲット ブラウザーである Firefox では)

これをどのように修正しますか?

4

2 に答える 2

3

あなたが調べることができる2つのオプションがあります:

  • ファイルセーバー APIは、/正確に/これを可能にする新しい「HTML5」機能です。小さな問題が 1 つあります。関連する部分は、Firefox ではまだサポートされていません。これを使いたい場合は、これを簡単にする素敵なラッパー ライブラリがあります: filesaver.js
  • Downloadifyは、まさにこのために作成されたフラッシュ ツールです。ここで見つけることができます。(「短所」: フラッシュ)
于 2012-07-03T12:18:24.557 に答える
1

あなたがすでにこれをしたかどうかはわかりません。aspxページで以下のようなものを処理する必要があるかもしれません:

$(window).load(function(){
$( "#clickExcel" ).click(function() {  
var dtltbl = $('#dtltbl').html();    `enter code here`
window.open('data:application/vnd.ms-excel,' + $('#dtltbl').html());
});
});//]]>  

上記のスクリプトでは、#dtltblはテーブルIDです。

次のコードがサーバー側のコードに含まれている必要があります。そうすれば、問題は解決されます。

           Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
于 2012-07-10T04:43:08.113 に答える