C#4.0 Excel生成图表和位置

时间:2011-03-29 20:23:08

标签: c# .net excel charts

我遇到了一个小问题。我创建了一个代码,用于创建包含少量记录的Excel工作表并创建折线图。但问题是我似乎无法将图表定位在指定位置。这是我的代码:

 excelApp.ActiveSheet.Shapes.AddChart.Select();
 excelApp.ActiveChart.ChartType = Excel.XlChartType.xlLine;
 excelApp.ActiveChart.SetSourceData(Source: excelApp.Range["Sheet1!$A$1:$B$7"]);
 excelApp.ActiveChart.Parent.Name = "mainChartView";
 excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100; 
 // or excelApp.ActiveChart.Shapes.Item("mainChartView").Top = 100;

两者都返回以下错误:

ArgumentExecption was unhandled (The item with the specified name wasn't found).

这是错误行:

excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100; 
// or excelApp.ActiveChart.Shapes.Item("mainChartView").Top = 100;

我真的希望你们中的一个拥有正确的芒果,非常感谢帮助!

编辑:解决方案是:

excelApp.ActiveSheet.Shapes.Item("mainChartView").Top = 20;

3 个答案:

答案 0 :(得分:1)

我自己找到了anwser。

我换了:

excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100;

使用:

excelApp.ActiveSheet.Shapes.Item("mainChartView").Top = 20;

答案 1 :(得分:1)

你也应该能够使用:

excelApp.ActiveChart.Parent.Top = 100;

答案 2 :(得分:0)

您正在设置.Parent Name属性,您不应该设置Chart对象本身的名称吗?你有Chart对象吗?设置其名称属性

excelApp.ActiveSheet.Shapes.AddChart应该返回一个形状类型(在您的案例图表中)。设置类型名称属性,然后尝试