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

标签 c# excel interop charts

使用 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;

有谁知道如何在工作簿上创建图表(即图表所在的工作表)。

最佳答案

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

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

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

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

关于c#-excel interop - 在工作簿上创建图表而不是在工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015634/

相关文章:

c# - 调试从 C# 调用的 VC++ 6 DLL

c# - 字符串的自定义比较器是否应该允许空值

c# - 如何防止 XtraGrid TextEdit 在将光标移动到内容之外时失去焦点

excel - ShellExecuteEx 在 Excel VBA 中崩溃

c# - 在 Excel 中执行拖放操作时 DragDrop.DoDragDrop 不返回

excel - 对齐两个有间隙的时间序列

c# - 奇怪的 handle 泄漏

c# - Selenium 的 Chrome 驱动程序卡在 bet365 网站上的灰色屏幕

c# - 捕获从 .NET 应用程序执行的 powershell 脚本的标准输出

c# - WPF:应用程序关闭时关闭辅助窗口而无需 "programmer"干预