Recently encountered in the work, to use the Angularjs post method to download the case of Excel. Find a post online: http://stackoverflow.com/questions/22447952/ Angularjs-http-post-convert-binary-to-excel-file-and-download, changed the inside part of the code to fix.
Detailed code:
$http. Post ($rootScope. restful_api.last_output_excel,body_data,{responsetype: ' Arraybuffer '}). Success (function(data) {varBlob =NewBlob ([data], {type: "Application/vnd.ms-excel"}); varObjecturl =Url.createobjecturl (BLOB); varAforexcel = $ ("<a><span class= ' forexcel ' > Download excel</span></a>"). attr ("href", Objecturl); $("Body"). Append (Aforexcel); $(". Forexcel"). Click (); Aforexcel.remove (); })
Experience Summary:
1.post method to add Responsetype: ' arraybuffer ' parameter, otherwise the download of Excel will be garbled (this is not noticed at first, laborious for a long time)
2. Using {type: "Application/vnd.ms-excel"}, you can save the Excel file in XLS format (older version compatible). The use of "Application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" is saved as xlsx
3. Use the Add node to call the click Method, instead of using the window.open (Objecturl) method in the post, is to prevent the browser when the plug-in screen popup connection
Angularjs to download Excel files via the Post method