C# System.Exception:图形集合中已存在名称

C# System.Exception:图形集合中已存在名称,c#,asp.net,epplus,C#,Asp.net,Epplus,我正在尝试使用Epplus库在excel工作表中生成条形图。我已经成功地将Piechart添加到工作表中 var chart1 = ws.Drawings.AddChart("xyz",eChartType.ColumnClustered) as ExcelBarChart ; chart1.Legend.Position = OfficeOpenXml.Drawing.Chart.eLegendPosition.Right; chart1.Legend.Add(); c

我正在尝试使用Epplus库在excel工作表中生成条形图。我已经成功地将Piechart添加到工作表中

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:图形集合中已存在名称


我尝试了不同的图表类型选项,如ColumnClustered、Barstacked等,但仍然出现错误。请帮助。

查看错误-它不是指图表的类型,而是指名称。大概您已经添加了一个名为xyz的图表。换个名字就行了

仔细阅读错误消息总是很重要的,这样你就不会走上死胡同

编辑:如注释中所述,该方法被调用了两次。第一次它可以工作,但第二次由于尝试添加具有相同名称的第二个图表而失败。选项:

跟踪您创建的图表数量,并将其命名为xyz1、xyz2等 从Guid或类似内容创建图表名称 将图表名称传递到方法中,并强制调用方确保它们是唯一的
看看这个错误——它不是在谈论图表的类型,而是在谈论名称。大概您已经添加了一个名为xyz的图表。换个名字就行了

仔细阅读错误消息总是很重要的,这样你就不会走上死胡同

编辑:如注释中所述,该方法被调用了两次。第一次它可以工作,但第二次由于尝试添加具有相同名称的第二个图表而失败。选项:

跟踪您创建的图表数量,并将其命名为xyz1、xyz2等 从Guid或类似内容创建图表名称 将图表名称传递到方法中,并强制调用方确保它们是唯一的
不,另一个图表有不同的名称,不是吗xyz@mhasan:嗯,例外情况表明某些东西已经被称为xyz。我建议您将其更改为工作表中可能不存在的字符串。谢谢Jon skeet先生,我的超级粉丝yours@mhasan:我编辑了答案,为如何解决这个问题提供了一些选项。不,另一个图表有不同的名称,不是xyz@mhasan:嗯,例外情况表明某些东西已经被称为xyz。我建议您将其更改为工作表中可能不存在的字符串。谢谢Jon skeet先生,我的超级粉丝yours@mhasan:我已经编辑了答案,为如何解决这个问题提供了一些选项。