如何使用带有多个系列的EPPlus创建图表? [英] How to create a chart with EPPlus with multiple series?

查看:255
本文介绍了如何使用带有多个系列的EPPlus创建图表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

 区域进口出口出口
北美9.00010837 14.54751448
南美国7.878137347 4.878011063
欧洲32.41924303 39.37317481
中东6.859031587 12.94288951
非洲7.611513341 2.938054884
亚洲36.23196633 25.32035526

结果应类似于:



这是我的代码:

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

var row = 2;
foreach(项目中的可变项目)
{
dataSheet.Cells [ A +行] .Value = item.GeographicalAreaPersianName;
dataSheet.Cells [ B +行] .Value = item.ImportsShare;
dataSheet.Cells [ C +行] .Value = item.ExportsShare;
行++;
}


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}'');
}
图。Border.Fill.Color= System.Drawing.Color.Green;

我得到的是这个结果:



您可以看到系列标题未正确显示,我在EPPlus中找不到适当的帮助。我该如何纠正呢?

解决方案

让我们说数据存储如下图所示:





以下方法可以解决问题:

  var图表= 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();
}
图。Border.Fill.Color= System.Drawing.Color.Green;

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

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



结果图表如下:(代码的实际结果以上):




I'm trying to create this chart using 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

The result should look like:

Here's my code:

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;

Yet what I get is this result:

As you can see series title is not shown correctly and I can't find proper help in EPPlus. How can I correct this?

解决方案

Let us say that data are stored as demonstrated by the following screenshot:

The following should do the trick:

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;

The second parameter of Add method stands for title of series {"Imports", "Exports"}

For the Areas, you have to set the header.

Resulting chart looks like: (Actual result of code above):

这篇关于如何使用带有多个系列的EPPlus创建图表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆