如何使用具有多个系列的EPPlus创建图表?

moh*_*eli 2 c# excel charts epplus

我正在尝试使用EPPlus创建此图表:

Area            Imports         Exports
North America   9.00010837      14.54751448
South America   7.878137347     4.878011063
Europe          32.41924303     39.37317481
Middle East     6.859031587     12.94288951
Africa          7.611513341     2.938054884
Asia            36.23196633     25.32035526
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

Excel列聚簇图表

这是我的代码:

dataSheet.Cells["A1"].Value = "Area";
dataSheet.Cells["B1"].Value = "Imports";
dataSheet.Cells["C1"].Value = "Exports";

var row = 2;
foreach (var item in items)
{
    dataSheet.Cells["A" + row].Value = item.GeographicalAreaPersianName;
    dataSheet.Cells["B" + row].Value = item.ImportsShare;
    dataSheet.Cells["C" + row].Value = item.ExportsShare;
    row++;
}


var diagram = diagramSheet.Drawings.AddChart("chart", eChartType.ColumnClustered);

for (int i = 2; i <= row; i++)
{
    var series = diagram.Series.Add($"'Data'!B{i}:C{i}", $"'Data'!A{i}:A{i}");
}
diagram.Border.Fill.Color = System.Drawing.Color.Green;
Run Code Online (Sandbox Code Playgroud)

然而我得到的是这个结果:

Excel列聚簇图表

正如你所看到的,系列标题没有正确显示,我在EPPlus中找不到合适的帮助.我怎么能纠正这个?

Yah*_*ein 8

我们假设数据存储如下面的屏幕截图所示:

excel数据

以下应该做的伎俩:

var diagram = worksheet.Drawings.AddChart("chart", eChartType.ColumnClustered);

for (int i = 2; i <= row; i++)
 {
  var series = diagram.Series.Add($"B{i}:C{i}", "B1:C1");
  series.Header = worksheet.Cells[$"A{i}"].Value.ToString();
 }
diagram.Border.Fill.Color = System.Drawing.Color.Green;
Run Code Online (Sandbox Code Playgroud)

Add方法的第二个参数代表系列标题{"Imports","Exports"}

对于区域,您必须设置标题.

结果图如下所示:(上面代码的实际结果):

excel列聚集图表