0

ブラウザを使用jsreportしてデータをサーバーに送信し、それを xlsx ファイルとしてダウンロードしたいと考えています。

を使用jsreport.download(request)すると、GET であるため、データの量が制限されます。jsreport.renderAsync()pdf と同じように xlsx ファイルをダウンロードできますか?

4

1 に答える 1

1

jsreport.renderAsyncpromise 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

于 2016-08-14T18:17:38.470 に答える