Подтвердить что ты не робот

Экспортировать HTML-таблицу в функцию Excel JavaScript Добавить имя файла

У меня есть следующая функция, которая экспортирует 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, который будет использовать целевой браузер)

Как вы это исправите?

4b9b3361

Ответ 1

Есть два варианта, которые вы могли бы изучить:

  • API файлового архива - это новая функция HTML5, позволяющая/точно/это. Есть только одна небольшая проблема: соответствующая часть еще не поддерживается в firefox. Если вы хотите использовать это, есть хорошая библиотека оберток, которая упрощает вам: filesaver.js
  • Downloadify - это инструмент вспышки, созданный именно для этого, вы можете найти его здесь. ( "Недостаток": вспышка)

Ответ 2

Я не уверен, что вы уже это сделали. Возможно, вам потребуется обработать что-то вроде этого ниже на странице aspx:

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

В приведенном выше script #dtltbl - это идентификатор таблицы.

В коде на стороне сервера должен присутствовать следующий код, тогда ваша проблема будет решена.

           Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");