Я нахожусь в тупике по проблеме, которая кажется легкой, обозначая оси X и Y!Как нарисовать оси Excel X и Y в 2d-графе
Я создаю граф Excel в VS2010 с C#. Это 2D-диаграмма рассеяния XY. Но я не могу контролировать метку оси X! Я могу управлять меткой оси Y! Я потратил слишком много времени, пытаясь понять это и отказался. Поэтому я ищу чью-то помощь! Вот мой код:
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;
}
Результат этого кода, как вы шаг через него, показывает метка оси X идет к оси Y, то он заменяется на оси Y наклейки. Ничто не идет на ось X! Любые идеи очень приветствуются.
David, Спасибо. Ты заставил меня пройти мимо этого кошмара! Мне пришлось изменить порядок вашего предложения, поставив (XlAxisType.xlCategory, XlGroup.xlValue), чтобы он был принят, но это исправило мою проблему! –