我正在尝试使用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
结果如下:
这是我的代码:
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;
然而我得到的是这个结果:
正如您所看到的,系列标题未正确显示,我在EPPlus中找不到合适的帮助。我怎么能纠正这个?
答案 0 :(得分:6)
我们假设数据存储如下面的屏幕截图所示:
以下应该可以解决问题:
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”}
对于区域,您必须设置标题。
结果图表如下:(上面代码的实际结果):