我想知道如何从AngularJS应用程序中下载报告?
我想要的是一个可下载的文件,或者在预览中打开其他标签中的Excel Online上的.xlsx
。
我怎么能这样做?
答案 0 :(得分: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>
答案 1 :(得分: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");