c#-excel interop – 在工作簿上创build图表,而不是在工作表中

使用C#MS Excel互操作库,我想以编程方式在工作簿上,而不是在工作表上创build一个新的图表。

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

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; 

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

如果您从Excel GUI中录制一张插入图表的macros,并查看生成的VB(顺便说一句,这是一个非常方便的方法来弄清楚如何在互操作中做什么),您会看到它只是创build首先在活动工作表中绘制图表,然后将其位置更改为新工作表。 所以在上面的代码之后,你可以添加这行:

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

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

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