如何:向工作表添加 Chart 控件

在文档级自定义项中,可以在设计时和运行时向 Microsoft Office Excel 工作表添加 Chart 控件。 在应用程序级外接程序中,还可以在运行时添加 Chart 控件。

**适用于:**本主题中的信息适用于 Excel 2007 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

本主题介绍了以下任务:

  • 在设计时添加 Chart 控件

  • 在运行时在文档级项目中添加 Chart 控件

  • 在运行时在应用程序级项目中添加 Chart 控件

有关 Chart 控件的更多信息,请参见 Chart 控件

在设计时添加 Chart 控件

可以采取在应用程序中添加图表时所用的方式,将 Chart 控件添加到工作表。

提示

“工具箱”“数据源”窗口中未提供 Chart 控件。

在 Excel 中将 Chart 宿主控件添加到工作表中

  1. 在**“插入”选项卡上的“图表”组中,单击“柱形图”**,单击一个图表类别,然后单击所需图表的类型。

  2. 在**“插入图表”对话框中,单击“确定”**。

  3. 在**“设计”选项卡上的“数据”组中,单击“选择数据”**。

  4. 在**“选择数据源”对话框中,在“图表数据范围”**框中单击,并清除任何默认选定内容。

  5. 在**“图表数据”工作表中,选择包含图表数据的单元格范围(单元格“A5”“D8”**)。

  6. 在**“选择数据源”对话框中,单击“确定”**。

在运行时在文档级项目中添加 Chart 控件

可以在运行时动态地添加 Chart 控件。 关闭文档时,动态创建的图表不会作为宿主控件保持在该文档中。 有关更多信息,请参见在运行时向 Office 文档添加控件

以编程方式将 Chart 控件添加到工作表中

  • 在 Sheet1 的 Startup 事件处理程序中,插入以下代码以添加 Chart 控件。

    Dim employeeData As Microsoft.Office.Tools.Excel.Chart
    employeeData = Me.Controls.AddChart(25, 110, 200, 150, "employees")
    employeeData.ChartType = Excel.XlChartType.xl3DPie
    
    ' Gets the cells that define the data to be charted.
    Dim chartRange As Excel.Range = Me.Range("A5", "D8")
    employeeData.SetSourceData(chartRange)
    
    Microsoft.Office.Tools.Excel.Chart employeeData;
    employeeData = this.Controls.AddChart(25, 110, 200, 150, "employees");
    employeeData.ChartType = Excel.XlChartType.xl3DPie;
    
    // Gets the cells that define the data to be charted.
    Excel.Range chartRange = this.get_Range("A5", "D8");
    employeeData.SetSourceData(chartRange, missing);
    

在运行时在应用程序级项目中添加 Chart 控件

您可以以编程方式在应用程序级外接程序项目中向任何打开的工作表添加 Chart 控件。 有关更多信息,请参见在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

关闭工作表时,动态创建的图表控件不会像宿主控件一样保留在工作表中。 有关更多信息,请参见在运行时向 Office 文档添加控件

以编程方式将 Chart 控件添加到工作表中

  • 下面的代码生成一个基于打开的工作表的工作表宿主项,然后添加一个 Chart 控件。

    Private Sub AddChart()
        Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet =
            Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet
    
        ' Use the following line of code in projects that target the .NET Framework 4.
        Dim worksheet As Microsoft.Office.Tools.Excel.Worksheet =
            Globals.Factory.GetVstoObject(NativeWorksheet)
    
        ' In projects that target the .NET Framework 3.5, use the following line of code.
        ' Dim worksheet = CType(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet,  _
        '    Excel.Worksheet).GetVstoObject()
    
        Dim cells As Excel.Range = worksheet.Range("A5", "D8")
        Dim chart As Chart = worksheet.Controls.AddChart(cells, "employees")
        chart.ChartType = Excel.XlChartType.xl3DPie
        chart.SetSourceData(cells, Type.Missing)
    
    End Sub
    
    private void AddChart()
    {
        // Use the following line of code in projects that target the .NET Framework 4.
        Worksheet worksheet = Globals.Factory.GetVstoObject(
            Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet);
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        // Worksheet worksheet = 
        //     ((Excel.Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet).GetVstoObject();
    
        Excel.Range cells = worksheet.Range["A5", "D8"];
        Chart chart = worksheet.Controls.AddChart(cells, "employees");
        chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xl3DPie;
        chart.SetSourceData(cells, missing);
    }       
    

编译代码

此示例有以下要求:

  • 要为其创建图表的数据,存储于工作表的 A5 到 D8 范围内。

请参见

概念

在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

Chart 控件

使用扩展对象实现 Excel 自动化

宿主项和宿主控件概述

ChartSheet 宿主项

宿主项和宿主控件的编程限制

其他资源

Office 文档上的控件

将数据绑定到 Office 解决方案中的控件