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では)
これをどのように修正しますか?
あなたが調べることができる2つのオプションがあります:
あなたがすでにこれをしたかどうかはわかりません。あなたはあなたの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");