Создание XML-документа Excel в Asp.net веб-сайт MVC


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

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

Как вы делаете XML-документ Excel, открытый в 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

2 ответа:

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

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

Попробуйте с

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

И держи свое .XML-расширение.