2009-07-31 4 views
1

2 개의 gridview와 2 개의 mschart가 포함 된 페이지가 있습니다. ı이 페이지를 내보내고 싶습니다. 이를 위해 나는 패널에 이러한 컨트롤을 가져다가이 코드를 쓰기 :이 코드의 실행은, 모든 차트를 제외한 확인되면내보내기 Excel에 이미지를 포함하는 페이지

Response.Clear();   
    Response.ContentType = "application/vnd.msexcel"; 
    Response.AddHeader("content-disposition", "attachment; filename=rapor.xls"); 
    Response.ContentEncoding = System.Text.Encoding.Default; 
    System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
    panel1.RenderControl(htmlWrite); 
    Response.Write(stringWrite.ToString()); 
    Response.End(); 

합니다. 그들은 탁월하게 오지 않을 것입니다. 내가 어떻게 해?

답변

1

100 % 확신 할 수는 없지만 차트가 페이지에 표시되도록 메모리에 쓰여지므로 요청 후에 사라집니다.

HTML은 코드에 이미지를 포함 할 수 없기 때문에 외부 파일을 참조해야합니다.

옵션 :

  1. 확인 차트 이미지를 디스크에 기록 할 수 있도록,하지만 당신은 엑셀 보고서 이미지
  2. 을 보여주는 유지하므로 저장 할 수 있습니다 임시 파일의 많은 수의 조심 경우
  3. (권장) 보고서를 PDF로 내 보냅니다.
0

다음 코드를 사용해보십시오. 내가 local IIS에서 테스트했는데 제대로 작동하고 그리드 데이터 위에 Header Image/Logo 같은 이미지를 포함하고 있습니다. 차트를 이미지로 포함시켜야합니다.

Response.ContentType = "application/vnd.ms-excel";   
Response.AddHeader("Content-Disposition", "attachment; filename=test.xls;");     
StringWriter stringWrite = new StringWriter();   
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);   
dgrExport.DataSource = dtExport;   
dgrExport.DataBind(); 
dgrExport.RenderControl(htmlWrite); 
string headerTable = @"<Table><tr><td><img src=""D:\\Folder\\1.jpg"" \></td></tr></Table>"; 
Response.Write(headerTable); 
Response.Write(stringWrite.ToString());   
Response.End(); 

귀하의 요구 사항에 따라 이미지의 높이와 너비를 조정할 수 있습니다. 동일한 높이 및 너비 설정이 <TD> 태그에 필요합니다.

관련 문제