2012-05-03 208 views
1

如何使用chrome通過mvc將.xlsx文件導出爲ex​​cel。它適用於.xls的但不是原來的.xlsx導出到Excel .xlsx文件

 Response.ClearContent(); 
     Response.AddHeader("content-disposition", "attachment; filename= Estimate1.xlsx"); 
     Response.ContentType = "application/excel"; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 

     Response.Write(sw.ToString()); 
     Response.End(); 
+0

看看http://epplus.codeplex.com/ – user287107

+0

我們在我們的一個項目中使用EPPlus,它的效果很好。 –

+0

我還使用它,它的偉大工程有時也功能也一點點有限的,例如所有圖表選項都不可用,或者如果寫入超過1000000行,它不會返回錯誤。另外有時數字寫錯了方式,Excel然後抱怨破損的xls文件 – user287107

回答

2

檢查您的MIME類型在IIS - 網絡服務器是不知道的Office 2007(或更高版本)的文件擴展名,並拒絕爲他們服務。

請參閱TechNet上的Register the 2007 Office system file format MIME types on servers關於此主題。

即使你不使用「真正的」 IIS,你應該嘗試添加XSLX MIME類型,你的web.config:

<configuration> 
    <system.webServer> 
     <staticContent> 
      <mimeMap fileExtension=".xslx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 
+0

即時通訊使用本地主機asp.net不是IIS – TMan

+0

@TMan你的問題聽起來很像你的網絡服務器將知道.xls MIME類型,但錯過了一個爲.xslx。 – Filburt

+2

@Tman - Filburt指出,「application/excel」的「內容類型」對於xlsx文件不正確:您應該使用此處列出的那個:http://blogs.msdn.com/b/vsofficedeveloper/archive /2008/05/08/office-2007-open-xml-mime-types.aspx –