Как экспортировать в excel в angular и web api с помощью npm filesaver
Я хочу, чтобы экспортировать в Excel в угловой и веб-API с помощью npm filesaver
В консоли я получаю сообщение об ошибке :
Тело запроса не является ни большим двоичным объектом, ни буфером массива
Вот мой код
Веб-Api :
public HttpResponseMessage GetExcelData() { try { JobAssignment j = new JobAssignment(); string filePath = j.GetExcelData(); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); result.Content = new StreamContent(stream); result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = Path.GetFileName(filePath) }; // result.Content.Headers.ContentLength = stream.Length; result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); return result; } catch (Exception ex) { HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.InternalServerError); return result; } }
Компонент :
GetExcelData() { this.loaderService.GetExcelData() .subscribe( blob => { importedSaveAs(blob, "file1"); }, error => { this.errorMessage = <any>error }); }
обслуживание :
GetExcelData(): Observable<Blob> { let headers = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob }); let bodyString = {}; return this.http.get(this.rootUrl + 'GetExcelData',{responseType: ResponseContentType.Blob}) .map(res => res.blob()) .catch(this.handleError); }
Что я уже пробовал:
Я изменился
result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/vnd.ms-excel");
Но это не работает.
Пожалуйста, скажите мне, где я ошибаюсь.