2016-03-21 23 views
0

我生成一个基本的Excel图表与此代码:为什么我的Excel图表生成的图例与饼图不符?

object misValue = System.Reflection.Missing.Value; 
//add data 
_xlSheet.Cells[11, 11] = "PhooBar"; 
_xlSheet.Cells[11, 12] = "Student1"; 
_xlSheet.Cells[11, 13] = "Student2"; 
_xlSheet.Cells[11, 14] = "Student3"; 

_xlSheet.Cells[12, 11] = "Term1"; 
_xlSheet.Cells[12, 12] = "80"; 
_xlSheet.Cells[12, 13] = "65"; 
_xlSheet.Cells[12, 14] = "45"; 

_xlSheet.Cells[13, 11] = "Term2"; 
_xlSheet.Cells[13, 12] = "78"; 
_xlSheet.Cells[13, 13] = "72"; 
_xlSheet.Cells[13, 14] = "60"; 

_xlSheet.Cells[14, 11] = "Term3"; 
_xlSheet.Cells[14, 12] = "82"; 
_xlSheet.Cells[14, 13] = "80"; 
_xlSheet.Cells[14, 14] = "65"; 

_xlSheet.Cells[15, 11] = "Term4"; 
_xlSheet.Cells[15, 12] = "75"; 
_xlSheet.Cells[15, 13] = "82"; 
_xlSheet.Cells[15, 14] = "68"; 

Excel.Range chartRange; 

Excel.ChartObjects xlCharts = (Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268); 
Excel.Chart chartPage = myChart.Chart; 

chartRange = _xlSheet.get_Range("K11", "O15"); // K == 11, O == 15 
chartPage.SetSourceData(chartRange, misValue); 
chartPage.ChartType = Excel.XlChartType.xlPieExploded; 

我有一个关于控制标签位置here问题。

现在我想知道为什么有四条件,但五个项目上传说:

enter image description here

ISTM该图表引擎的传奇应该匹配的馅饼。这是怎么回事?

+0

因为你的传奇4项,紫色的将是“”一个.. – BugFinder

+1

难道不是因为这样的:1:派件和传说之间的1相契合? '_xlSheet.Cells [11,11] =“”;' – Ian

+1

'_xlSheet.Cells [11,11] =“”;'改为说'foo',你会在你的传说中得到'foo' ... –

回答

0

通过代码更改为此,馅饼和传说对应:

object misValue = System.Reflection.Missing.Value; 
//add data 
_xlSheet.Cells[12, 11] = "Term1"; 
_xlSheet.Cells[12, 12] = "80"; 
_xlSheet.Cells[12, 13] = "65"; 
_xlSheet.Cells[12, 14] = "45"; 

_xlSheet.Cells[13, 11] = "Term2"; 
_xlSheet.Cells[13, 12] = "78"; 
_xlSheet.Cells[13, 13] = "72"; 
_xlSheet.Cells[13, 14] = "60"; 

_xlSheet.Cells[14, 11] = "Term3"; 
_xlSheet.Cells[14, 12] = "82"; 
_xlSheet.Cells[14, 13] = "80"; 
_xlSheet.Cells[14, 14] = "65"; 

_xlSheet.Cells[15, 11] = "Term4"; 
_xlSheet.Cells[15, 12] = "75"; 
_xlSheet.Cells[15, 13] = "82"; 
_xlSheet.Cells[15, 14] = "68"; 

Excel.Range chartRange; 

//return; 

Excel.ChartObjects xlCharts = (Excel.ChartObjects)_xlSheet.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(468, 160, 348, 268); 
Excel.Chart chartPage = myChart.Chart; 

chartRange = _xlSheet.Range[_xlSheet.Cells[12, 11], _xlSheet.Cells[15, 14]]; 

我从“get_Range”更改为更高效,更易于神交“范围。[]”和现在有

enter image description here

+0

嘿,你解决了这个问题。大! ;) – Ian