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)
结果应如下所示:
这是我的代码:
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)
然而我得到的是这个结果:
正如你所看到的,系列标题没有正确显示,我在EPPlus中找不到合适的帮助.我怎么能纠正这个?
我们假设数据存储如下面的屏幕截图所示:
以下应该做的伎俩:
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"}
对于区域,您必须设置标题.
结果图如下所示:(上面代码的实际结果):