Создайте документ Excel XML на веб-сайте Asp.net MVC - PullRequest
3 голосов
/ 22 декабря 2009

У меня есть сайт ASP.Net MVC, который генерирует электронную таблицу в формате Microsoft Excel 2003 в формате XML. Электронная таблица выглядит хорошо, контроллер и представления работают, но файл не открывается в Excel. Он открывается в браузере, потому что это документ XML.

Я попытался изменить ContentType на формат Excel XLS (application / excel), и это заставило Excel открыть файл, но выдает предупреждение, что файл является документом XML, а не документом XLS.

Как сделать документ Excel XML открытым в Excel с веб-сайта?

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %><%  
this.Context.Response.Clear();  
this.Context.Response.AddHeader("content-disposition", "attachment;filename=State_Report_" + this.ViewData["State"] + ".xml");  
this.Context.Response.Charset = "";  
this.Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);  
this.Context.Response.ContentType = "application/excel";  
%><?xml version="1.0"?>  
<?mso-application progid="Excel.Sheet"?>  
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"  
  xmlns:o="urn:schemas-microsoft-com:office:office"  
  xmlns:x="urn:schemas-microsoft-com:office:excel"  
  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"  
  xmlns:html="http://www.w3.org/TR/REC-html40">  

Ответы [ 2 ]

3 голосов
/ 23 января 2010

Попробуйте с

Response.ContentType = "application/vnd.ms-excel"

И сохранить расширение .XML.

1 голос
/ 22 декабря 2009

Ваша проблема может заключаться в использовании расширения файла .xml, которое вы добавляете в свой заголовок. Мой код, который делает то же самое, вообще не имеет расширения файла.

Вы можете попробовать удалить это расширение .xml или изменить его на .xls или .csv.

...