Partilhar via


How to: Add Chart controls to worksheets

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

You can add Chart controls to a Microsoft Office Excel worksheet at design time and at run time in document-level customizations. You can also add Chart controls at run time in VSTO Add-ins.

Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel. For more information, see Features available by Office application and project type.

This topic describes the following tasks:

Add Chart controls at design time

You can add the Chart control to your worksheet in the same manner you would add a chart from within the application.

Note

The Chart control is not available from the Toolbox or the Data Sources window.

To add a Chart host control to a worksheet in Excel

  1. On the Insert tab, in the Charts group, click Column, click a category of charts, and then click the type of chart you want.

  2. In the Insert Chart dialog box, click OK.

  3. On the Design tab, in the Data group, click Select Data.

  4. In the Select Data Source dialog box, click in the Chart data range box and clear any default selection.

  5. In the Data for Chart sheet, select the range of cells that contains the data for the chart (cells A5 through D8).

  6. In the Select Data Source dialog box, click OK.

Add chart controls at run time in a document-level project

You can add the Chart control dynamically at run time. Dynamically created charts are not persisted in the document as host controls when the document is closed. For more information, see Add controls to Office documents at run time.

To add a Chart control to a worksheet programmatically

  1. In the Startup event handler of Sheet1, insert the following code to add the Chart control.

    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);
    
    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)
    

Add chart controls at run time in a VSTO Add-in project

You can add a Chart control programmatically to any open worksheet in a VSTO Add-in project. For more information, see Extend Word documents and Excel workbooks in VSTO Add-ins at run time.

Dynamically created chart controls are not persisted in the worksheet as host controls when the worksheet is closed. For more information, see Add Controls to Office documents at run time.

To add a Chart control to a worksheet programmatically

  1. The following code generates a worksheet host item that is based on the open worksheet, and then adds a Chart control.

    private void AddChart()
    {
        Worksheet worksheet = Globals.Factory.GetVstoObject(
            Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet);
    
    
        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);
    }
    
    Private Sub AddChart()
        Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet =
            Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet
    
        Dim worksheet As Microsoft.Office.Tools.Excel.Worksheet =
            Globals.Factory.GetVstoObject(NativeWorksheet)
    
        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
    

Compile the code

This example has the following requirements:

  • Data to be charted, stored in the range from A5 to D8 in the worksheet.

See also