0

AngularJS アプリケーションからレポートをダウンロード可能にする方法を教えてください。

レポートは.xlsxデータを投稿できますが、応答は次のとおりです。 応答

私が望むのは、ダウンロード可能なファイル、または.xlsxプレビューのように他のタブで Excel Online を開くことです。

どうすればそれができますか?

4

2 に答える 2

2

私は通常、非表示のフォームを作成し、プレーンな 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>
于 2016-01-28T12:21:19.640 に答える
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");
于 2016-01-27T07:02:58.293 に答える