Asp.net mvc 在Asp.net MVC网站中生成Excel XML文档

Asp.net mvc 在Asp.net MVC网站中生成Excel XML文档,asp.net-mvc,excel,export-to-excel,Asp.net Mvc,Excel,Export To Excel,我有一个ASP.NETMVC站点,可以生成MicrosoftExcel2003XML格式的电子表格。电子表格看起来不错,控制器和视图都可以工作,但文件无法在Excel中打开。它在浏览器中打开,因为它是XML文档 我尝试将ContentType更改为Excel XLS格式(应用程序/Excel),这使Excel打开了该文件,但它会发出警告消息,表明该文件是XML文档,而不是XLS文档 如何从网站在Excel中打开Excel XML文档 <%@ Page Language="C#" Inher

我有一个ASP.NETMVC站点,可以生成MicrosoftExcel2003XML格式的电子表格。电子表格看起来不错,控制器和视图都可以工作,但文件无法在Excel中打开。它在浏览器中打开,因为它是XML文档

我尝试将ContentType更改为Excel XLS格式(应用程序/Excel),这使Excel打开了该文件,但它会发出警告消息,表明该文件是XML文档,而不是XLS文档

如何从网站在Excel中打开Excel XML文档

<%@ 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">  

您的问题可能在于使用扩展名为.xml的文件,您正在将其添加到标题中。 我做同样事情的代码根本没有文件扩展名

您可以尝试删除该.xml扩展名,或将其更改为.xls或.csv。

尝试使用

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

并保留.XML扩展名。

首先,谢谢大家。我尝试了这个方法,现在该文件在MS Excel中打开,但它会显示一条错误消息,说明文件格式与扩展名不匹配,因为我在扩展名为.XLS的文件中使用了XML格式。我想我的用户可以接受这个,但我更愿意让它在没有警告消息的情况下工作。那么.xlsx呢?这是Excel2007中引入的较新扩展。这还有另一个建议,可能是也可能是不受欢迎的:@chrisb:“我们不建议在服务器上自动化Office应用程序,包括Excel。”