System.Exception:名称已存在于图纸集合中

时间:2013-05-28 07:43:40

标签: c# asp.net epplus

我正在尝试使用Epplus库在Excel工作表中生成条形图。我已经成功地在工作表中添加了一个饼图。

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

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

1 个答案:

答案 0 :(得分:4)

查看错误 - 它不是在谈论图表的类型,而是在谈论名称。大概你已经添加了一个名为xyz的图表。请改用其他名称。

(仔细阅读错误信息总是很重要,这样你就不会失明了......)

编辑:如评论中所述,该方法被调用两次。它第一次工作,但第二次因为尝试添加具有相同名称的第二个图表而失败。选项:

  • 跟踪您创建的图表数量,并将其命名为xyz1,xyz2等
  • 从Guid或类似的东西
  • 创建图表名称
  • 将图表名称传递给方法并强制调用者确保它们是唯一的