2017-04-19 5 views
0

windows.open('url')을 사용하여 C# Web API에서 Excel을 다운로드하고 있습니다. 모든 브라우저에서 다운로드되고 있습니다. 그러나 아이 패드 아이폰 들어, 파일 다운로드를 얻을하지만 난 메모리 스트림에 저장되어있는 엑셀 데이터를 반환하려면 다음 코드를 사용하고 화면iPad의 경우 ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON은 .Net 응용 프로그램의 경우 iphone

ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON 

을에 오류가 다음 얻을 내가 가진

HttpResponseMessage result = null; 

result = Request.CreateResponse(HttpStatusCode.OK); 
result.Content = new StreamContent(mem); 
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
{ 
    FileName = "myexcel.xlsx" 
}; 
return result; 

PHP에있는 것과 같은 질문을 보았습니다. 나는 똑같은지 확인해 보았지만 잘못된 콘텐츠 유형을주고있었습니다. URL : - ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON on iPad and iPhone Safari

다른 곳에서 같은 문제가 있는지 확인한 후 코드 변경을 시도했습니다. 데스크톱 변수를 추가하여 모바일에서 제안 된대로 다른 스트림을 추가 할 수 있도록했습니다. 그러나 그것은 효과가 없습니다.

if (isDesktop) 
{ 
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
} 
else 
{ 
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 
} 
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
{ 
    FileName = "myexcel.xlsx" 
}; 
return result; 

편집 - Excel 작성시 ClosedXml을 사용하고 있습니다. 닫힌 XMl 문제에 대한 Github 링크 - https://github.com/ClosedXML/ClosedXML/issues/279

답변

0

대신 Eppus를 사용하여이를 해결했습니다. closedXml에 대한 해결책을 찾을 수 없습니다.