如何在Excel中使用C#命名轴?

这是我如何创build图表:

Excel.ChartObjects xlChartsq = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); Excel.ChartObject myChartq = (Excel.ChartObject)xlChartsq.Add(10, 1000, 175, 310); Excel.Chart chartPageq = myChartq.Chart; myChartq.Select(); 

我已经用这种方法成功命名了主轴,我使用了MDSN的代码 :

 Excel.Axis axis = myChartq.Chart.Axes( Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary); axis.HasTitle = true; axis.AxisTitle.Text = "AXIS`s NAME"; 

它的工作原理应该是这样的,但后来我试图用这种方法来命名次轴,它失败了:

 Excel.Axis axisq = myChartq.Chart.Axes( Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlSecondary); axisq.HasTitle = true; axisq.AxisTitle.Text = "another AXIS`s NAME"; 

它编译没有任何错误,不幸的是,在调用此代码后,我得到这样的错误:意外的exception“ System.Runtime.InteropServices.COMException ”,和类似HRESULT E_FAIL错误返回。

我究竟做错了什么? 有什么build议么?

UPD1:在命名之前,我创build了一些系列,但是,老实说,我无法弄清楚它是如何与Secondary轴关联的。

 for (int i = 0; i < current_Excel_Position; i++ ) { Excel.Series series1 = seriesCollection.NewSeries(); series1.XValues = xlWorkSheet.get_Range("A" + Convert.ToString(92 + i), "B" + Convert.ToString(92 + i)); ; series1.Values = xlWorkSheet.get_Range("C" + Convert.ToString(92 + i), "D" + Convert.ToString(92 + i)); } 

第二轴上至less有一个系列。 如果所有数据都在主轴上,则无法显示/编辑辅助轴。

你有第二轴上的任何系列? 如果不是,那是你的问题。

编辑:这是如何设置值(您的情况下的Y轴)和类别(您的情况下的X轴):

 Excel.Axis axisq = myChartq.Chart.Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary); axisq.HasTitle = true; axisq.AxisTitle.Text = "Value axis NAME"; axisq = myChartq.Chart.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary); axisq.HasTitle = true; axisq.AxisTitle.Text = "Category axis NAME";