2012-12-07 4 views
0

ASP.NET C#에서 Respose.Write를 사용하여 Excel 파일을 만들면 사용자가 만든 파일을 시스템에 저장할 수 있지만이 Excel 파일을 내 서버에 저장하려고합니다. 그것에 대해 아는 사용자. 그게 어떻게 가능해? 이것은 내가 내 엑셀 파일 만드는 방법은 다음과 같습니다save excel 파일을 서버에 생성했습니다.

 Response.Clear(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", "attachment;filename=" + "res" + ".xls"); 
    Response.Charset = ""; 
    Response.ContentType = "application/vnd.ms-excel"; 

....

Response.Write("</table>"); 
    Response.Flush(); 
    Response.End(); 

이 코드가 생성 저장합니다 엑셀 파일을 클라이언트 PC를,하지만 난 서버에 생성 된 파일을 저장할

+0

C#에서 기본 파일 시스템 입출력을 읽어야합니다. 귀하의 질문은 귀하가 요청하기 전에 스스로 해결하려고 시도조차하지 않았다는 것을 나타냅니다. – Maritim

+0

어떻게 Excel 파일을 생성합니까? HTML 테이블을 생성하는 것처럼 보입니다. – dana

+0

예 HTML 테이블로 생성 중이므로 클라이언트에 다운로드 할 수 있지만 서버에 저장하려고합니다. –

답변

2

일반적인 생각은 Excel 파일의 내용을 버퍼에 쓰는 것입니다. 그런 다음 a) 파일에 저장하고 b) 클라이언트로 스트리밍합니다. 서버에서 고유 한 파일 이름 지정 규칙 (예 : 시간 소인 포함)을 사용하려고합니다. 또한 IIS App Pool에는 파일을 저장할 폴더에 대한 쓰기 권한이 필요합니다.

StringBuilder excel = new StringBuilder(); 
excel.Append("<table>"); 
... 
excel.Append("</table>"); 

// save to file 
File.WriteAllText("C:\\blah.xls", excel.ToString()); 

// output to response 
Response.Clear(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment;filename=" + "res" + ".xls"); 
Response.Charset = ""; 
Response.ContentType = "application/vnd.ms-excel"; 
Response.Write(excel.ToString()); 
Response.End(); 
+0

감사합니다. dana, 예상보다 많은 도움이되었습니다. –

관련 문제