2013-03-12 3 views
4

Как изменить имя файла при экспорте данных в Excel?Как изменить имя файла при экспорте данных в Excel?

<div id="example" class="k-content"> 
    <button type="button"id="btnExport">Export to csv!</button> 
    <div id="grid"></div> 
</div> 
<script> 
$("#btnExport").click(function (e) { 
    var result = "data:application/vnd.ms-excel,"; 

    window.open(result); 

    e.preventDefault(); 
}); 
</script> 

Когда я нажимаю кнопку экспорта, я получаю как download.xls. Можно ли установить имя файла как data.xls? Может ли кто-нибудь объяснить мне, где мне нужно настроить это?

Благодаря

+0

хаи Я проверил с response.addheader но не use.Is там какая-то альтернатива, чтобы изменить имя файла – user1877936

+0

когда я добавляю response.Addheader он показывал ошибку, как неопределенный идентификатор – user1877936

+0

Я получил решение – user1877936

ответ

6

вот пример, который демонстрирует Экспорт таблицы HTML в Excel с пользовательским именем файла: http://www.kubilayerdogan.net/javascript-export-html-table-to-excel-with-custom-file-name/

+0

Спасибо, работая отлично. – user1877936

+0

Большое спасибо – webmaster

+0

Огромное спасибо ... Его работа прекрасна. – Madhura

1

Вы не можете сделать это с помощью стороне клиента JavaScript, вам необходимо установить заголовок ответа ...

.NET

Response.AddHeader("Content-Disposition", "inline;filename=filename.xls") 

Или PHP

$filename = 'somehting.xls'; 

header('Content-Disposition: attachment; filename="'.$filename.'"'); 
+0

HTTP : //jsfiddle.net/SZBrt/11/ Я поместил код, но я получаю сообщение об ошибке, пожалуйста, обновите в этой скрипте – user1877936

+0

См. обновленный ответ. – Red

+0

да Я пробовал с ответом.Добавить заголовок, когда я добавляю его, кнопка экспорта не работает – user1877936

2

У меня была такая же проблема, и поскольку новый формат (возможно, не поддерживается каждым браузером) <a download=""></a>, то для меня это работало отлично. Это напрямую использует HTML/Javascript без части сервера PHP, потому что использование формы отправки слишком тяжело для больших таблиц данных.

  • изменение <button> к <a>
  • не более window.open()
  • с использованием базовых <a> поведения (так, не более e.preventDefault()), но изменение href к data:blabla и добавление download="filename":
<div id="example" class="k-content"> 
    <a href="#" id="btnExport" >Export to csv!</a> 
    <div id="grid"></div> 
</div> 
<script> 
    $("#btnExport").click(function (e) { 
     var result = "data:application/vnd.ms-excel,"; 
     this.href = result; 
     this.download = "my-custom-filename.xls"; 
     return true; 
    }); 
</script> 
+0

Он отлично работает, но по какой-то причине изменение 'button' на' a' заставило Windows заблокировать файл (https://weblogs.asp.net/dixin/understanding-the-internet-file-blocking-and-unblocking) , Любая идея, как обойти эту проблему? – HuBeZa

1
Response.AddHeader "Content-Disposition", "attachment; filename=C:\YOURFILENAME.xls;" 
+2

Хотя это отвечает на вопрос, объяснение помогает каждому понять, что происходит. –

Смежные вопросы