2016-01-27 2 views
0

Хотелось бы узнать, как я могу сделать отчет загружаемым из моего приложения AngularJS?Скачать отчет от jsreport и angularjs

Доклад является .xlsx я могу отправить данные, но ответ: response

То, что я хотел бы это загружаемый файл или открыть .xlsx на Excel онлайн другой вкладке, как и в предварительный просмотр.

Как я мог это сделать?

ответ

0

У вас есть контроль над ответом? Если это так, добавить заголовок Content-Disposition и заголовок MediaType в ответ:

Для System.Net.Http.HttpResponseMessage

var response = new HttpResponseMessage{Content = ...........} 
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { 
        FileName = "mydoc.xlsx" 
       };  
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 

Для System.Net.WebClient

var client = new WebClient(); 
client.Headers.Add("Content-disposition", "attachment"); 
client.Headers.Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
1

Я обычно рекомендуем создать скрытую форму и сделать простой http submit jsreport/api/report. Это самый стабильный способ и работает во всех браузерах.

<form method='POST' target='_blank' action='/api/report' id='jsrForm'> 
    <input hidden='true' name='template[shortid]' value="41ucBgXKe"/> 
    <input hidden='true' name='data[foo]' value="Hello world"/> 
    <input hidden='true' name='options[Content-Disposition]' value="attachment; filename=myreport.pdf"/> 
</form> 



<script> 
    document.getElementById("jsrForm").submit(); 
</script> 
+0

Открывает ли этот отчет отчет на другой вкладке? как я могу открыть «.xlsx» в Excel Online? –

+0

Откроется диалоговое окно загрузки. Чтобы открыть excel онлайн, вы можете удалить Content-Disposition и добавить опции [preview] со значением true. Но имейте в виду, что это будет proxy excel онлайн через публичный сервер jsreport. https://github.com/jsreport/jsreport/issues/130 –