2017-04-19 363 views
0

我使用windows.open('url')从c#web api下载excel。它正在每个浏览器中下载。但对于iPad和iPhone,该文件得到下载,但我得到我使用下面的代码返回存储在内存流Excel数据在屏幕上ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON iPad和Iphone在.Net应用程序中

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中的同一个问题。我试着检查相同的内容,但他提供了错误的内容类型。网址: - 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; 

编辑 - 我使用ClosedXml创建Excel。 Github链接关闭XMl问题 - https://github.com/ClosedXML/ClosedXML/issues/279

回答

0

解决此问题,而不是使用Eppus。找不到任何关于closedXml的解决方案。