2012-05-03 11 views
1

Как я могу экспортировать файл .xlsx в excel через mvc, используя хром. Она работает на .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 строк. кроме того, иногда цифры записываются неверно, но потом жалуются на разбитые файлы xls. – user287107

ответ

2

Проверьте MIME-типы в IIS - веб-сервер не знает расширений файлов в Office 2007 (и выше) и отказывается служить им.

См. Register the 2007 Office system file format MIME types on servers на TechNet по этой теме.

Даже если вы не используете «реальной» IIS вы должны попробовать добавив XSLX MIME тип к вашему web.config:

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

Im использует локальный хост asp.net не IIS – TMan

+0

@TMan Ваша проблема звучит точно так же, как ваш веб-сервер будет знать о .xls MIME-Type, но пропустить один для .xslx. – Filburt

+2

@Tman - как указывает Филбурт, ваш тип содержимого «application/excel» неверен для файлов xlsx: вы должны использовать тот, который указан здесь - http://blogs.msdn.com/b/vsofficedeveloper/archive /2008/05/08/office-2007-open-xml-mime-types.aspx –

Смежные вопросы