시스템에서는 Excel 스트림이 생성되고 생성된 Excel이 사용자에게 스트리밍되는 경우가 종종 있습니다.
일반적
으로
Response를 사용하여 클라이언트에 HTTP 헤더를 보내고 Excel 스트림을 보낼 수 있습니다
. 문제.
클릭하여 열 때 파일 다운로드 대화 상자가 두 번 나타나는 주된 이유는 다음과 같습니다
. (현재 추측으로는 정확한 이유는 아직 발견되지 않았습니다.)
처음 열었을 때 엑셀 스트림의 임시 파일이 시스템에 이미 존재하지만(파일 확장자가 없는 파일) 원본이 없는 경우(실제 파일이 존재함) 사용자에게 질문합니다. 임시 파일을 컴퓨터의 다른 위치에 저장합니다. (접미사 이름 부족과 관련이 있나요?)
두 번째로 클라이언트 파일의 위치와 임시 폴더가 아닌 다른 위치에 저장할지 여부를 선택합니다.
현재 솔루션은
내보낸 데이터를 제공하기 위해 특별히 새 페이지를 만드는 것
입니다.
이 페이지의 Page_load에 이와 같은 코드를 작성하세요.
private void Page_Load(object sender, System.EventArgs e)
{
//페이지를 초기화하려면 여기에 사용자 코드를 입력하세요.
ReportRule ReportRule=새 ReportRule();
byte[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]) //Excel 스트림 생성
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader("콘텐츠
처리","attachment;filename=hahh.xls");
(결과);
HttpContext.Current.Response.End()
;