2012-05-16 4 views
0

MS 차트 컨트롤을 사용하여 웹 응용 프로그램 (.Net 4.0)에서 차트를 생성했습니다. 내 요구 사항은 특정 차트를 Excel 파일로 이미지로 내보내는 것입니다. 나는 바이트 배열로 엑셀 파일에 차트 이미지를 쓰려고 시도하는 아래에 언급 된 코드를 작성했다. 하지만 필자의 엑셀 파일에는 알려지지 않은 문자가 포함되어 있습니다. 바이트 배열은 파일에 직접 쓰여졌을 수도 있습니다.MS 차트 컨트롤을 Excel로 내보내는 방법

이 차트를 Excel 파일에 올바로 작성하는 데 도움을 줄 수 있습니까? (바이트 배열을 사용하지 않고도 괜찮을 것입니다.) 감사합니다.

+1

당신은 실제로 단지 .XLS으로 이미지를 저장하는 것보다 처음이 아니라 스프레드 시트를 작성해야 할거야! [이 라이브러리 중 하나를 사용해보십시오] (http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp) – Rup

+0

@Rup - 빠른 응답을 보내 주셔서 대단히 감사합니다. 제안. 올바르게 구현하는 방법을 찾았습니다. 나는 모든 사람들이 그것에 대해 알 수 있도록 나의 소스 코드를 공유 할 것이다. 다시 한 번 감사드립니다 – Sugandika

답변

0

올바른 구현 방법을 찾을 수있었습니다. 내보내기 ms 차트 (ms 차트 컨트롤)를 사용하여 이미지로 탁월합니다. 나는 그것을 여기에서 공유하게되어 기쁘다. 올바른 소스 코드 샘플은 다음과 같습니다.

string tmpChartName = "test2.jpg"; 
    string imgPath = HttpContext.Current.Request.PhysicalApplicationPath + tmpChartName; 

    Chart1.SaveImage(imgPath); 
    string imgPath2 = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/" + tmpChartName); 

    Response.Clear(); 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=test.xls;"); 
    StringWriter stringWrite = new StringWriter(); 
    HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
    string headerTable = @"<Table><tr><td><img src='" + imgPath2 + @"' \></td></tr></Table>"; 
    Response.Write(headerTable); 
    Response.Write(stringWrite.ToString()); 
    Response.End(); 

감사합니다 :)

+0

흠, 아직 실제 Excel 파일이 아닙니다. 실제 .XLS가 아닌 .XLS로 HTML을 내보내고 있습니다. 그리고 당신의 솔루션은 하나 이상의 동시 사용자를 지원하지 않습니다 : 만약 당신이이 라우트를 내려가려면 다른 컨트롤러가 이미지를 생성하고 리턴 한 다음이 컨트롤러가 그 URL을 생성하게하는 것이 낫습니다. 그러나 나는 여전히 HTML이 아닌 실제 XLS 파일을 만들어야한다고 생각한다. – Rup

+0

@Rup - 귀하의 아이디어에 진심으로 감사드립니다. 더 나은 해결책을 찾기 위해 고려할 것입니다. – Sugandika

관련 문제