Depuis longtemps j'essaie de générer un graphique comme celui-ci
Codes j'ai essayé.
Excel.Range chartRange1;
Excel.ChartObjects xlCharts1 = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart1 = (Excel.ChartObject)xlCharts1.Add(350, 500, 500, 350);
Excel.Chart chartPage1 = myChart1.Chart;
chartRange1 = worksheet.get_Range("A33", "b56");
chartPage1.SetSourceData(chartRange1, Type.Missing);
chartPage1.ChartType = Excel.XlChartType.xlBarStacked;
Excel.Range xValues = worksheet.Range["B33", "B56"];
Excel.Range values = worksheet.Range["a33", "a56"];
Excel.SeriesCollection seriesCollection = (Excel.SeriesCollection)chartPage1.SeriesCollection();
Excel.Series series1 = seriesCollection.NewSeries();
series1.XValues = xValues;
series1.Values = values;
S'il vous plaît aider quel type de graphique je devrais utiliser ou je fais une erreur. UNE
Après avoir changé le type de graphique, cela fonctionne parfaitement mais ne fonctionne pas pour le texte de la dernière ligne. Comme indiqué dans l'image ci-dessous.
Réponses:
8 pour la réponse № 1Oui, vous devez changer le type de graphique.
using Excel = Microsoft.Office.Interop.Excel;
chartPage1.ChartType = Excel.XlChartType.xlBarClustered
Vous devrez peut-être ajuster les lignes de la grille en fonction de l'apparence souhaitée. Je peux fournir plus de code pour cela si nécessaire.
Modifier - N'oubliez pas non plus de le faire
chartPage1.PlotBy = Excel.XlRowCol.xlColumns;
1 pour la réponse № 2
Je ne sais pas comment mais au moment où j'ai commenté chartPage1.SetSourceData(chartRange1, Type.Missing);
dans le code cela fonctionne bien, peut-être que deux sources de données sont définies une par ligne commentée et une par collection.