Ich versuche, eine ClosedXml Excel-Datei in einer Webapi/Angularjs-Anwendung herunterladen.Excel-Datei mit Webapi und Angularjs herunterladen
ich Rückkehr die Daten aus dem WebAPI-Controller auf dem Server mit:
HttpResponseMessage result = new HttpResponseMessage();
result = Request.CreateResponse(HttpStatusCode.OK);
MemoryStream stream = GetStream(workbook);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Download.xlsx"
};
return result;
und es dann auf dem Client-Speichern mit:
$scope.openExcel = function (data, status, headers, deferred) {
var type = headers('Content-Type');
var disposition = headers('Content-Disposition');
if (disposition) {
var match = disposition.match(/.*filename=\"?([^;\"]+)\"?.*/);
if (match[1])
defaultFileName = match[1];
}
defaultFileName = defaultFileName.replace(/[<>:"\/\\|?*]+/g, '_');
var blob = new Blob([data], { type: type });
saveAs(blob, defaultFileName);
Excel sagt die Datei in einem anderen ist Format als von der Erweiterung angegeben und dann nicht ordnungsgemäß geöffnet.