Comment étiqueter les axes Excel X et Y en 2d graphique

Je suis perplexe sur un problème qui semble facile, marquant les axes X et Y!

Je crée un graphique Excel dans VS2010 avec C #. Il s'agit d'un diagramme de dispersion 2D XY. Mais je ne peux pas contrôler l'label de l'axe X! Je ne peux que contrôler l'label de l'axe Y! J'ai passé trop de time à essayer de refind ce problème et j'ai abandonné. Alors je cherche l'aide de quelqu'un! Voici mon code:

private void showExcelXY_v2() { xla = new Microsoft.Office.Interop.Excel.Application(); xla.Visible = true; Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet); Worksheet ws = (Worksheet)xla.ActiveSheet; // Now create the chart. ChartObjects chartObjs = (ChartObjects)ws.ChartObjects(Type.Missing); ChartObject chartObj = chartObjs.Add(100, 20, 500, 300); Microsoft.Office.Interop.Excel.Chart xlChart = chartObj.Chart; //add some data from your datasource like a dataset or like below. ws.Cells[1, 1] = "Value of n"; ws.Cells[1, 2] = "Term"; ws.Cells[2, 1] = "0"; ws.Cells[2, 2] = "0"; ws.Cells[3, 1] = "9181"; ws.Cells[3, 2] = "0"; ws.Cells[4, 1] = "9181"; ws.Cells[4, 2] = "-377094"; ws.Cells[5, 1] = "0"; ws.Cells[5, 2] = "-377094"; ws.Cells[6, 1] = "-9554"; ws.Cells[6, 2] = "-329688"; ws.Cells[7, 1] = "-9554"; ws.Cells[7, 2] = "0"; ws.Cells[8, 1] = "0"; ws.Cells[8, 2] = "0"; //set the source data and the chart type. Range chartRange = ws.get_Range("A2", "B" + "8"); xlChart.SetSourceData(chartRange, Type.Missing); xlChart.ChartType = XlChartType.xlXYScatterLines; // Customize axes: Microsoft.Office.Interop.Excel.Axis xAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary); xAxis.HasTitle = true; xAxis.AxisTitle.Text = "Above Pressure (psi) Below"; Microsoft.Office.Interop.Excel.Axis yAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary); yAxis.MajorTickMark = XlTickMark.xlTickMarkCross; yAxis.HasTitle = true; yAxis.AxisTitle.Text = "Compression (lbf)"; // Add title: xlChart.HasTitle = true; xlChart.ChartTitle.Text = "XPak Performance Envelope" + '\n' + "(Open Top & Bottom)"; // Remove legend: xlChart.HasLegend = false; } 

Le résultat de ce code, au fur et à mesure que vous le parcourez, montre que l'label de l'axe X va à l'axe Y, puis elle est écrasée par l'label de l'axe des Y. Rien ne va à l'axe X! Toutes les idées seraient grandement appréciées.

Vous avez les deux axes définis de la même manière:

 xAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary) yAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary) 

L'axe x est l'axe "Catégorie" et l'axe y est l'axe "Valeur". Essayez ceci pour l'axe x (révisé):

 xAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlCategory, XlAxisGroup.xlPrimary)