Je suis un peu nouveau sur C# et Visual Studio et j'essaie de tracer un graphique basé sur les valeurs d'un fichier csv situé ailleurs. J'ai utilisé la propriété ChartObjects et ChartWizard dans C# pour créer le graphique. Le graphique tracé doit être la plage de colonnes que je fournis, dans l'axe Y et l'axe X doit avoir le numéro de ligne actuel (1,2,3,4 etc.). Cependant, mon graphe par défaut prend l'axe des X pour être la première colonne de mon fichier csv. Il trace correctement si je spécifie une plage pour l'axe X aussi, mais comment puis-je obtenir le numéro de ligne actuel là?Modifier les valeurs de l'axe x du graphique C#
Je suis passé par beaucoup d'articles et de questions même sur Stack Overflow mais aucun n'a semblé aider.
Voici un extrait de mon code:
Microsoft.Office.Interop.Excel.Application xlexcel;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlexcel = new Microsoft.Office.Interop.Excel.Application();
var xlWorkBooks = xlexcel.Workbooks;
xlexcel.Visible = false;
xlWorkBooks.OpenText(@"C:\" + processName + ".csv", misValue, misValue, Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited, Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierNone, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
// Set Sheet 1 as the sheet you want to work with
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBooks[1].Worksheets.get_Item(1);
xlWorkSheet.Shapes.AddChart(misValue, misValue, misValue, misValue, misValue).Select();
//~~> Make it a Line Chart
xlexcel.ActiveChart.ApplyCustomType(Microsoft.Office.Interop.Excel.XlChartType.xlLine);
//~~> Set the data range
xlexcel.ActiveChart.SetSourceData(xlWorkSheet.Range["E2:E200"]);
xlexcel.ActiveChart.ChartWizard(misValue, Title: chartName + " (" + processName + ")", CategoryTitle: "Iterations", ValueTitle: processType);
Microsoft.Office.Interop.Excel.ChartObjects chartObjects =(Microsoft.Office.Interop.Excel.ChartObjects)(xlWorkSheet.ChartObjects(Type.Missing));
foreach (Microsoft.Office.Interop.Excel.ChartObject co in chartObjects)
{
co.Select();
Microsoft.Office.Interop.Excel.Chart chart = (Microsoft.Office.Interop.Excel.Chart)co.Chart;
chart.Export(ConfigurationManager.AppSettings.Get("Charts") + "\\ProcessFiles" + @"\" + chartName + " (" + processName + "of" + processType + ")" + ".png", "PNG", false);
co.Delete();
}
xlWorkBooks[1].Close(true, misValue, misValue);
xlexcel.Quit();
Toute orientation serait grandement apprécié. Merci!
que vous voulez afficher dans Excel ou exporter sous forme de fichier image? – imsome1
Je veux l'exporter en tant que fichier image. @ imsome1 – TrishaR