2010-06-10 67 views
5

使用c#MS Excel互操作库,我想以编程方式在工作簿上创建新图表,而不是在工作表上。c#-excel interop - 在工作簿上而不是在工作表上创建图表

下面的代码允许我在现有_Worksheet(工作表)上创建图表。

using using Microsoft.Office.Interop.Excel; 

_Worksheet sheet; (assume this is a reference to a valid _Worksheet object) 
ChartObjects charts = (ChartObjects)sheet.ChartObjects(Type.Missing); 
ChartObject chartObject = (ChartObject)charts.Add(10, 80, 300, 250); 
Chart chart = chartObject.Chart; 
chart.ChartType = XlChartType.xlXYScatter; 

有谁知道如何去创建工作簿上的图表(即图表是工作表的位置)。

回答

3

如果您从Excel GUI录制插入图表的宏,并查看生成的VB(顺便说一句,这是一个非常方便的方法,可以了解如何在互操作中完成),您会看到它只是在活动工作表中首先创建图表,然后将其位置更改为新工作表。因此,经过你的代码上面你可以添加一行:

chart.Location(XlChartLocation.xlLocationAsNewSheet, "NewSheetName"); 

,或者如果您希望Excel自动为您命名:

chart.Location(XlChartLocation.xlLocationAsNewSheet, Type.Missing); 
+0

谢谢YOYO,这就是我一直在寻找的答案,有的好建议。 – 2010-06-12 12:41:08

相关问题