현재 일부 데이터를 Excel 파일로 내보내는 ASP.NET MVC 5 컨트롤러 작업을 작성 중입니다. 여기에서 찾은 일부 코드를 사용합니다. 그것은 주로 ... 작동합니다. 내가 열 수있는 Excel 파일을 출력하지만 다음 오류 메시지를 표시하기 전에는 출력하지 않습니다.ASP.NET MVC Excel 내보내기 파일 형식 오류
"파일 형식과 확장명이 'Export.xls'와 일치하지 않습니다. 파일이 손상되거나 안전하지 않을 수 있습니다. 너는 그것을 원천이라고 믿는다. 열지 말아라. 어쨌든 열어보고 싶니? "
"예"를 선택한 다음 계속됩니다. 내 컴퓨터에 다시 저장할 수 있으며 해당 파일을 열면 오류가 발생하지 않습니다. 그렇지 않으면 잘 작동합니다. 다른 단점은 파일의 눈금 선이 Excel 파일보다 HTML 표와 거의 비슷한 Excel 파일의 경우와 다르게 형식이 지정된다는 것입니다. 그러나 이상한 오류 메시지는 여기에서 받아 들일만한 것이 아니기 때문에 고쳐야합니다. 이미 아무 소용이 다른 값으로 Response.ContentType ("응용 프로그램/엑셀", "응용 프로그램/MS-Excel을"), 설정 시도
public void ExportExcel()
{
// DataObject is a class that fetches the data for this method
DataObject dataObj = new DataObject();
var grid = new GridView();
// dataObj.GetDataList returns a List<T> of data model class objects
grid.DataSource = dataObj.GetDataList();
grid.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=Export.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
byte[] byteArray = Encoding.ASCII.GetBytes(sw.ToString());
MemoryStream s = new MemoryStream(byteArray);
StreamReader sr = new StreamReader(s, Encoding.ASCII);
Response.Write(sr.ReadToEnd());
Response.End();
}
:
여기 내 코드입니다. 저는 ASP.NET과 C#에서 일반적으로 조금 익숙해서, 제가 누락되었거나 여기에서 잘못하고있는 것이있을 수 있습니다. 나는 PHP와 Zend에 익숙하다. 당신이 줄 수있는 통찰이나 도움은 크게 감사 할 것입니다; 감사!
사이드 노트 데이터 행을 채우기 위해 여기에 목록을 사용하면 샘플 코드를 어디서나 가까운 보이지 않는다 ASP.MVC 동작이 어떻게 나타나야하는지 ... Content [Content] 또는 [File] (http://msdn.microsoft.com/en-us/library/dd470835%28v=vs.118%29.aspx) 더 의미. –
그 File 메서드는 꽤 깔끔하게 보입니다. (내가 C#을 처음 사용한다고 말했듯이) – TrentD