2013-05-28 23 views
1

我想在Excel表格中使用Epplus库生成条形图。我已经成功将Piechart添加到工作表。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。 但我得到的错误,在第一线之上

System.Exception: Name already exists in the drawings collection

我已经试过diferent图表类型选项,如ColumnClustered,Barstacked等,但仍然得到错误。请帮忙。

回答

4

看看这个错误 - 它不是在谈论图表的类型,而是在讨论名为的名称。推测你已经添加了一张名为xyz的图表。只需使用不同的名称。

(读取错误信息仔细始终是重要的,这样你就不会往下走死胡同......)

编辑:正如在评论中指出,该方法被调用两次。它第一次可以工作,但第二次尝试添加第二个具有相同名称的图表会失败。选项:

  • 的你已经创建了多少图表跟踪,并将它们命名为XYZ1,XYZ2等
  • 创建图表的名字从一个GUID或类似
  • 传递图表名称到方法的东西,强制来电,以确保他们是唯一
+0

没有,其他的图表有不同的名称,而不是“XYZ” –

+0

@mhasan:嗯,除了表明* *的东西已经被称为'xyz'。我建议你把它改成一个字符串,这个字符串不可能*已经存在于你的工作表中。 –

+6

也许你的代码被调用两次? –