WebAPIからExcelファイルをダウンロードしようとしています。基本的にExcelファイルはメモリストリーム経由で作成されています。PostWebAPI/MVCでExcelファイルをダウンロード
Excelコンテンツはうまく生成されていますが、Chromeネットワークツールの[レスポンス]タブにレスポンス自体が純粋なXMLとしてダウンロードできません。以下はC#のコードです
var sheet = linq.ExportToExcel(userAddedList);
var stream = new MemoryStream();
var sw = new StreamWriter(stream);
sw.Write(sheet);
sw.Flush();
var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream.GetBuffer()) };
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Report.xml" };
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/ms-excel");
var response = ResponseMessage(result);
return response;
これは私がAngularから呼び出す方法です。
var httpRequest = commonFunctions.getRequestObject( "GET"、requestURL、{}、null);
$http(httpRequest).then(function (response) {
vm.isProcessing = false;
}, function (error) { displayError(error); });
あなたはXMLの拡張子を指定して、設定していますコンテンツタイプをBIFFバージョンのExcelに追加します。結果として、あなたは正確に何を期待していますか?私はhttp://stackoverflow.com/a/4212908/534109 –
@ TiesonTを見ていきます。私が言及したように、私はちょうどその記事の例に従った。とにかく、あなたが提案したように、私はxlsとMIMEタイプの拡張をapplication/vnd.ms-excelに変更しました。 AJAXのリクエストがなければ正常に動作しますが、AJAXで動作させる方法を知りたいのですが – programmerboy