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

dav*_*zen 5 c# excel charts interop

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

下面的代码允许我在现有的_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;
Run Code Online (Sandbox Code Playgroud)

有谁知道如何在工作簿上创建图表(即图表是工作表).

yoy*_*sef 3

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

  chart.Location(XlChartLocation.xlLocationAsNewSheet, "NewSheetName");
Run Code Online (Sandbox Code Playgroud)

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

  chart.Location(XlChartLocation.xlLocationAsNewSheet, Type.Missing);
Run Code Online (Sandbox Code Playgroud)