J’essaie de créer ce graphique en utilisant 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
Le résultat devrait ressembler à:
Voici mon 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;
Ce que j’obtiens pourtant:
Comme vous pouvez le constater, le titre de la série n’est pas affiché correctement et je ne trouve pas l’aide appropriée dans EPPlus. Comment puis-je corriger cela?
Supposons que les données sont stockées comme illustré par la capture d’écran suivante:
Ce qui suit devrait faire l’affaire:
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;
Le deuxième paramètre de la méthode Add correspond au titre de la série {"Imports", "Exports"}
Pour les zones, vous devez définir l'en-tête.
Le graphique obtenu ressemble à ceci: (Résultat réel du code ci-dessus):