嗨,我可以像C / C这样在C#中生成excel图表
我想在特定单元格中设置默认聊天位置(示例单元格E15)
到目前为止,我已经尝试了像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中它不可用'Range'在输入SetSourceData之后再按空格
任何想法,如何正确地做到这一点?
更新
我认为不正确的参数是.item(myChart)
所以我把它改成.item(myChart.Name)*感谢Baldrick
但它给出了新的错误
'未找到具有指定名称的项目
我尝试使用此代码提供myChart名称
myChart.Name = "test";
//then changed
chartPage.Shapes.Item(myChart.Name = "test").Top = (float)((double)chartPlacementRange.Top);
但是没有用
答案 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);
答案 1 :(得分: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;