Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#在excel中命名轴?_C#_Excel - Fatal编程技术网

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

如何使用C#在excel中命名轴?,c#,excel,C#,Excel,以下是我创建图表的方式: 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(); 我成

以下是我创建图表的方式:

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();
我成功地命名了primary axis,我使用了:

它可以正常工作,但后来我尝试使用这种方法命名secondary axis,但失败了:

Excel.Axis axisq = myChartq.Chart.Axes(
Excel.XlAxisType.xlValue,
Excel.XlAxisGroup.xlSecondary);

axisq.HasTitle = true; 
axisq.AxisTitle.Text = "another AXIS`s NAME";
它编译时没有任何错误,不幸的是,调用此代码后,我遇到了这样的错误: 意外异常“System.Runtime.InteropServices.COMException”,并返回类似于HRESULT E_FAIL的错误

我做错了什么?有什么建议吗

UPD1: 在命名之前,我创建了一些系列,但老实说,我不知道如何将其与
辅助轴关联

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));
}
for(int i=0;i
次轴上必须至少有一个系列。如果所有数据都位于主轴上,则无法显示/编辑次轴

在次轴上有任何系列吗?如果不是,那就是你的问题

编辑:这是如何设置值(案例中的Y轴)和类别(案例中的X轴):


那个么,我怎样才能向次轴添加数据呢?在大多数情况下,你们甚至不需要向次轴添加数据。为什么要首先设置次轴的名称?也许你想要的是主分类轴,你试过那个吗?如果您真的想向secondary axis添加数据,可以执行以下操作:Excel.SeriesCollection sc=myChartq.Chart.SeriesCollection();Excel.Series系列=sc.NewSeries();series=sc.NewSeries();series.AxisGroup=Excel.XlAxisGroup.xlSecondary;这将向图表中添加两个新系列。第一个是主轴(默认),第二个是第二个。我自己觉得很愚蠢,是的,你的解决方案可行,但我误解了,我只是想命名x轴,通过命名主轴,我给y轴命名了。难吗?
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));
}
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";