4

X軸とY軸にラベルを付けるという、簡単そうな問題に困惑しています。

C#を使用してVS2010内にExcelグラフを作成しています。2DXY散布図です。しかし、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軸には何も行きません!任意のアイデアをいただければ幸いです。

4

1 に答える 1

5

両方の軸を同じ方法で定義しました。

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

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

x軸は「カテゴリ」軸であり、y軸は「値」軸です。x軸(改訂)に対してこれを試してください。

xAxis = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(XlAxisType.xlCategory, XlAxisGroup.xlPrimary)
于 2013-03-26T13:59:10.287 に答える