2009-12-22 4 views
3

Microsoft Excel 2003 XML 형식의 스프레드 시트를 생성하는 ASP.Net MVC 사이트가 있습니다. 스프레드 시트가 좋아 보이지만 컨트롤러와보기가 모두 작동하지만 Excel에서는 파일이 열리지 않습니다. XML 문서이므로 브라우저에서 열립니다.Asp.net MVC 웹 사이트에서 Excel XML 문서 생성

ContentType을 Excel XLS 형식 (application/excel)으로 변경하여 Excel에서 파일을 열어 보았지만 파일이 XLS 문서가 아니라 XML 문서라는 경고 메시지를 표시했습니다.

웹 사이트에서 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"> 

답변

1

헤더에 추가 할 .xml 파일을 사용하는 중 문제가 발생했을 수 있습니다. 이 동일한 작업을 수행하는 코드에는 파일 확장자가 전혀 없습니다.

.xml 확장명을 삭제하거나 .xls 또는 .csv로 변경해보십시오.

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

그리고 .XML 확장자를 유지와

+0

우선, 감사합니다. 이 시도하고 파일을 이제 MS Excel에서 열리지 만 확장명이 .XLS 인 파일에서 XML 형식을 사용했기 때문에 파일 형식이 확장명과 일치하지 않는다는 오류 메시지가 나타납니다. 나는 내 사용자가 이걸로 살 수 있다고 생각하지만, 경고 메시지없이 작동하도록하고 싶다. –

+0

.xlsx는 어떨까요? 그것은 Excel 2007에서 소개 된 새로운 확장 기능입니다. 이것은 또 다른 제안으로, 맛이 좋거나 아닐 수도 있습니다. http://www.itexperience.net/2008/03/17/excel-2007-error-different-format-than- 파일 확장자로 지정/ – DOK

+0

예쁘지는 않지만 고객이 승인했습니다 ... –

3

보십시오.

+1

참조 : http://support.microsoft.com/kb/288130 – chrisb

+1

@chrisb : "우리는 자동화를 권장하지 않습니다. Excel을 포함한 Office 응용 프로그램을 서버에 저장하십시오. " –

관련 문제