我有一個生成Microsoft Excel 2003 XML格式的電子表格的ASP.Net MVC站點。電子表格看起來不錯,控制器和視圖都可以工作,但該文件不會在Excel中打開。它在瀏覽器中打開,因爲它是一個XML文檔。在Asp.net MVC Web站點生成Excel XML文檔
我試着將ContentType更改爲Excel XLS格式(application/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">
首先,謝謝DOK。我試過了,文件現在在MS Excel中打開,但它會給出一個錯誤消息,指出文件格式與擴展名不匹配,因爲我在擴展名爲.XLS的文件中使用了XML格式。我認爲我的用戶可以忍受這一點,但我寧願讓它在沒有警告信息的情況下工作。 – 2009-12-22 20:29:14
.xlsx怎麼樣?這是Excel 2007中引入的新擴展。這有另一個建議,可能會或可能不適合:http://www.itexperience.net/2008/03/17/excel-2007-error-different-format-than-指定的文件擴展名/ – DOK 2009-12-22 20:53:53
這不是很好,但客戶接受它... – 2009-12-24 14:57:21