从jsreport和angularjs下载报告
我想知道如何从AngularJS应用程序中下载报告?
该报告是一个.xlsx
我可以发布的数据,但答复是:
我想要的是可下载的文件,或者在预览中的其他选项卡上打开Excel Online上的.xlsx
。
我怎么能这样做?
我通常build议创build一个隐藏的表单,并做简单的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>
你有反应的控制权吗? 如果是,请将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");