簡體   English   中英

如何使用具有多個系列的 EPPlus 創建圖表?

[英]How to create a chart with EPPlus with multiple series?

我正在嘗試使用 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

結果應如下所示:

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;

然而我得到的是這個結果:

Excel 柱狀聚類圖

如您所見,系列標題未正確顯示,我在 EPPlus 中找不到適當的幫助。 我該如何糾正?

假設數據的存儲方式如下面的屏幕截圖所示:

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;

Add 方法的第二個參數代表系列的標題 {"Imports", "Exports"}

對於區域,您必須設置標題。

結果圖表如下所示:(上面代碼的實際結果):

excel柱狀聚類圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM