1

我正在尝试使用 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 等,但仍然出现错误。请帮忙。

4

1 回答 1

4

看看错误 - 它不是在谈论图表的类型,而是在谈论名称。大概您已经添加了一个名为xyz. 只需使用不同的名称即可。

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

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

  • 跟踪您创建了多少图表,并将它们命名为 xyz1、xyz2 等
  • 从 Guid 或类似名称创建图表名称
  • 将图表名称传递给方法并强制调用者确保它们是唯一的
于 2013-05-28T07:45:24.067 回答