2014-02-20 72 views
0

嗨,我能够从C#生成的图表在Excel这样更改默认图表地方

enter image description here

我想在特定的细胞设置默认的聊天的地方(例如小区E15)

enter image description here

到目前为止,我已经尝试像this

 Excel.Range chartRange; 
     Excel.ChartObjects xlCharts = (Excel.ChartObjects)oWorkSheet.ChartObjects(Type.Missing); 
     Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 150); 
     Excel.Chart chartPage = myChart.Chart; 

     chartRange = oWorkSheet.get_Range("E5", "F13"); 
     chartPage.SetSourceData(chartRange, misValue); 
     chartPage.ChartType = Excel.XlChartType.xlColumnClustered; 

     Excel.Range chartPlacementRange = oWorkSheet.get_Range("E15", "E15"); 
     chartPage.Shapes.Item(myChart.Name).Top = (float)((double)chartPlacementRange.Top); 
     chartPage.Shapes.Item(myChart.Name).Left = (float)((double)chartPlacementRange.Left); 
     //chartPage.Shapes.Item(myChart).Top = 100; 
     //chartPage.Shapes.Item(myChart).Left = 100; 
解决方案

,但我得到的错误“参数incorect”

我尝试在此link解决方案过于
但在我porgram它不可用“范围”型SetSourceData后,然后按空格

任何想法,如何正确地做到这一点?


更新

我认为不正确的参数是.item(myChart)
,所以我将其更改为.item(myChart.Name)*由于Baldrick
但它给新的错误 “与指定名称的项目未找到”

我试着给myChart名称与此代码

myChart.Name = "test"; 
//then changed 
chartPage.Shapes.Item(myChart.Name = "test").Top = (float)((double)chartPlacementRange.Top); 

,但它没有工作

回答

1

如何只:

excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 150); 
Excel.Range chartPlacementRange = oWorkSheet.get_Range("E15", "E15"); 
myChart.Left = chartPlacementRange.Left; 
myChart.Top = chartPlacementRange.Top; 
+0

它的工作......你只是想'(浮动)((双)chartPlacementRange.Top);' 后,我补充说....我可以设置图表的地方任何地方谢谢 – Neversaysblack

+0

很高兴你知道了。 –

1

如何:

Excel.Range chartPlacementRange = oWorkSheet.get_Range("E15", "E15"); 
chartPage.Shapes.Item(chartPage.Name).Top = (float)((double)chartPlacementRange.Top); 
chartPage.Shapes.Item(chartPage.Name).Left = (float)((double)chartPlacementRange.Left); 
+0

我仍然得到消息错误参数不正确......你有另一种解决方案? – Neversaysblack

+0

我认为.item(myChart)中的问题... mychart需要用别的东西替换(正确的参数) – Neversaysblack

+1

尝试上面编辑的版本。 (你需要提供对象名称或索引到Item方法 - 所以我已经改变它来提供名称) – Baldrick