2016-08-12 2 views
0

Ich möchte jsreport Browser verwenden, um Daten an den Server zu senden und sie als xlsx-Datei herunterzuladen.Kann Jsreport-Client asynchrone xlsx-Datei senden und empfangen?

Die Verwendung von jsreport.download (request) würde die Datenmenge begrenzen, da es sich um ein GET handelt. Kann ich mit jsreport.renderAsync() eine xlsx-Datei wie mit pdf herunterladen?

Antwort

1

jsreport.renderAsync gibt Versprechen ArrayBuffer zurück. Sie können es in Blob konvertieren und dann saveAs verwenden, um es auf den Benutzercomputer herunterzuladen.

<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