Экспортировать 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, который будет использовать целевой браузер)
Как вы это исправите?
Ответы
Ответ 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");