2016-10-07 10 views
1

EF WebApiでEPPlusを使用して、Excelワークブックにデータを返そうとしています。 webserverの呼び出しは正常に行われますが、ブラウザでExcelのドキュメントが開かれたら...すべてのコンテンツは不器用です。 WebApiでEF EPPlusを使用しています。

この

はここに私のWEBAPI

 private xxxV003Context db = new xxxV003Context(); 

    [HttpGet] 
    public HttpResponseMessage Get() 
    { 
     HttpResponseMessage response; 
     response = Request.CreateResponse(HttpStatusCode.OK); 
     MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/octet-stream"); 
     //MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
     response.Content = new StreamContent(ExcelSheet()); 
     response.Content.Headers.ContentType = mediaType; 
     response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); 
     response.Content.Headers.ContentDisposition.FileName = "Orders.xlsx"; 
     return response; 
    } 

    public List<Client> Orders() 
    { 
     List<Client> tList = new List<Client>(); 
     using (db) 
     { 
      tList.Add(new Client { ClientID = 50, ClientName = "testName1" }); 
      tList.Add(new Client { ClientID = 51, ClientName = "testName2" }); 
     } 
     return tList; 
    } 

    public MemoryStream ExcelSheet() 
    { 
     using (var package = new ExcelPackage()) 
     { 
      var worksheet = package.Workbook.Worksheets.Add("Orders"); 
      worksheet.Cells["A1"].LoadFromCollection(Orders(), false); 
      package.Save(); 
      var stream = new MemoryStream(package.GetAsByteArray()); 
      return stream; 
     } 
    } 

あるスクリーンショットにある enter image description here

NEW ERROR MESSAGE

<?xml version="1.0" encoding="UTF-8" standalone="true"?> 
-<recoveryLog  xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> 
<logFileName>error125800_03.xml</logFileName> 
<summary>Errors were detected in file 'C:\Users\xxx\Downloads\Orders (2).xlsx'</summary> 
-<additionalInfo> 
<info>Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.</info> 
</additionalInfo> 
</recoveryLog> 
+0

それ自体は問題ではないかもしれませんが、EPPlusは.xlsファイルではなく.xlsxファイルを生成します.xlsx拡張子を使用してみてください(私は唯一の問題ですが疑問が残っていますが確かに修正が必要です) –

+0

@Stewart_R ahh .. so私はそれを.xlsxに変更しました。これでデータが表示されますが、データが表示されますが、レベルの検証と修復には優れています。なぜこれが起こっているのか知っていますか? – solarissf

+0

進歩のように聞こえる!私は実際に私たちの自動車レポートの前に同じエラーを見たことがありますが、それは内部的なものだったので、私たちは今のところそれと一緒に暮らしています。何の問題も生じないようです。 –

答えて

3

EPPlusは、ファイルを.xlsx形式の作成 - .xlsx

.xlsからファイルの拡張子を変更
関連する問題