2016-08-12 4 views
0

Я хотел бы использовать браузер jsreport для отправки данных на сервер и загрузки его в виде файла xlsx.Может ли клиент Jsreport асинхронно отправлять и получать xlsx-файл?

Использование jsreport.download (request) ограничило бы объем данных, поскольку это GET. Могу ли я использовать jsreport.renderAsync() для загрузки файла xlsx точно так же, как с помощью pdf?

ответ

1

jsreport.renderAsync Возврат взамен ArrayBuffer. Вы можете преобразовать его в blob, а затем использовать saveAs, чтобы загрузить его на компьютер пользователя.

<script async="" src="https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js"></script> 

<script> 
    jsreport.renderAsync({ 
     template: { 
      content: '<table><tr><td>foo</td></tr></table>', 
      engine: 'none', 
      recipe: 'html-to-xlsx' 
     } 
    }).then(function (res) { 
     var dataView = new DataView(res); 
     var blob = new Blob([dataView], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); 
     saveAs(blob, 'a.xlsx') 
    }) 
</script> 

https://playground.jsreport.net/studio/workspace/HJ0z0yaY/8