2017-08-15 2 views
8

enter image description here .NETCoreApp 1.1でOpenXml 2.7.2を使用してExcelファイルを生成し、プロジェクトフォルダに保存しました。私の関数では、バイトを読み込み、ファイルとして返そうとします。私はエラーは出ませんが、応答では私はバイナリを返すだけです。だから、動作するようだがダウンロードされない。ここで.NETコアでOpenXmlで作成したダウンロード可能なExcelファイルを提供する方法

は私のコードです:

[HttpGet] 
[Route("export")] 
public IActionResult Export() 
    { 
     return File(System.IO.File.ReadAllBytes(filePath), 
     contentType: "application/octet-stream", 
     fileDownloadName: "MySheet.xlsx"); 

    } 

誰も私に知らせて、.NETコアでExcelファイルのダウンロードサービスを提供する方法を知っていれば。どんな助けでも感謝しています!私はのOpenXmlで生成されなかった空のファイルをエクスポートしようとしても、私は同じエラーメッセージが表示されますので、破損がExcelでのOpenXmlでファイル生成に関係しているかわからない

UPDATE

「ファイルが壊れていて開けない」と言っています。 Excel 2016にも完全には関連していません。なぜなら、他のExcelファイルをうまく開くことができるからです。

+0

あなたが持っているコードは動作する必要があります。私はあなたの問題が何であるかを理解することができません。ダウンロードしたファイルはバイナリ形式で配信されますか?どのようなツールが使われているのでしょうか?アクションはどのように呼び出されますか? – Nkosi

+0

イメージは、httpコールの応答で返されるものを示しています。これはexcelバイナリです。私はそれを望んでいない。 MySheet.xlsxという名前でファイルをpc/macに保存します。レスポンスの表示に使用したツールはChromes Inspectツールでした。私はフロントエンドから角度2のエクスポートルートを呼び出しています。 – jonv562

+0

ブラウザにURLを入力するだけでファイルをダウンロードするか、ブラウザがそのように設定されている場合は少なくともダウンロードを開始します。 – Nkosi

答えて

2

私は、ファイルを読み、それを提供することに頼る必要がないので、私の問題であるように見えました。今私がやることは、Excelを生成し、ExcelファイルのURLを返すことです。成功応答で私はwindow.open()を呼び出します。

this.export().subscribe(
     data => window.open(urlToExcelFile, "_blank"), 
     err => console.log(err) 
    ); 
関連する問題