Скачать отчет из jsreport и angularjs

0

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

Отчет - .xlsx я могу опубликовать данные, но ответ: Изображение 174551

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

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

Теги:
excel
jsreport

2 ответа

1

Обычно я рекомендую создать скрытую форму и просто отправить 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>
  • 0
    Открывает ли это отчет на другой вкладке? Как я могу напрямую открыть .xlsx в Excel Online?
  • 0
    Это откроет диалог загрузки. Чтобы открыть Excel онлайн, вы можете удалить Content-Disposition и добавить опции [preview] со значением true. Но имейте в виду, что это позволит прокси-серверу превзойти онлайн через публичный сервер jsreport. github.com/jsreport/jsreport/issues/130
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");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню