Я хотел бы знать, как я могу сделать отчет загружаемым из моего приложения AngularJS?
Отчет - .xlsx
я могу опубликовать данные, но ответ:
Я хочу загрузить загружаемый файл или открыть .xlsx
в Excel Online на другой вкладке, как в предварительном просмотре.
Как я мог это сделать?
Обычно я рекомендую создать скрытую форму и просто отправить http в 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>
У вас есть контроль над ответом? Если это так, добавьте заголовок 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");
.xlsx
в Excel Online?