2013-05-28 4 views
1

Epplus 라이브러리를 사용하여 Excel 시트에서 막대 그래프를 생성하려고합니다. 이미 시트에 파이 차트를 추가했습니다.System.Exception : 이름이 도면 컬렉션에 이미 있습니다.

var chart1 = ws.Drawings.AddChart("xyz",eChartType.ColumnClustered) as ExcelBarChart ; 
    chart1.Legend.Position = OfficeOpenXml.Drawing.Chart.eLegendPosition.Right; 
    chart1.Legend.Add(); 
    chart1.SetPosition(1, 0, 1, 0); 
    chart1.SetSize(600, 400); 
    //chart.Se 
    chart1.DataLabel.ShowValue = true; 


    chart1.Series.Add(r1, r2); 

저는 ExcelBarChart로 캐스팅 중입니다. 는하지만

내가 ColumnClustered, Barstacked 등 같은 개의 다른 차트 유형 옵션하지만 여전히 점점 오류를 시도

System.Exception: Name already exists in the drawings collection 위의 첫 번째 줄에서 오류가 발생하고있다. 도와주세요.

답변

4

오류를 살펴보십시오. 차트의 유형을 말하는 것이 아니며 이름이입니다. 아마도 xyz이라는 차트를 추가했을 것입니다. 대신 다른 이름을 사용하십시오.

편집

(당신이 ... 장님 골목길을 내려 가지 않도록 오류 메시지를 읽고 신중하게 항상 중요하다) : 코멘트에 언급 한 바와 같이, 방법은 두 번 호출되고 있었다. 처음에는 작동하지만 두 번째 차트에서는 동일한 이름의 두 번째 차트를 추가하기 때문에 실패합니다. 옵션 :

  • 가 만든 얼마나 많은 차트를 보관할 트랙, 그들을 xyz1 이름을 가나다 등
  • 차트는 GUID에서 이름이나
  • 이 방법으로 차트 이름을 전달 비슷한 것을 만들고 호출자가 고유한지 확인하도록합니다.
+0

아니요, 다른 차트에는 "xyz"가 아닌 다른 이름이 있습니다. –

+0

@mhasan : 예외적으로 * something *은 이미 'xyz'라고합니다. 난 당신이 * 아마도 * 이미 귀하의 워크 시트에 존재할 수없는 문자열로 변경하는 것이 좋습니다. –

+6

코드가 두 번 호출되는 경우가 있습니까? –

관련 문제