Поделиться через


Пошаговое руководство. Обновление диаграммы на листе с помощью переключателей

В этом пошаговом руководстве описываются основные принципы использования переключателей в листе Microsoft Office Excel для предоставления пользователям возможности быстрого переключения параметров.В этом случае параметры изменяют стиль диаграммы.

Применение. Сведения этого раздела применяются к проектам уровня документа для Excel 2013 и Excel 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

Для просмотра результатов в готовом примере обратитесь к примеру элементов управления Excel в разделе Образцы и пошаговые руководства разработки Office.

В данном пошаговом руководстве рассмотрены следующие задачи:

  • добавление группы переключателей на лист;

  • изменение стиля диаграммы при выборе определенного параметра.

ПримечаниеПримечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

-

Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
  • Excel 2013 или Excel 2010.

Добавление диаграммы на лист

Разработчик может создать проект книги Excel, который настраивает существующую рабочую книгу.В этом пошаговом руководстве в рабочую книгу будет добавлена диаграмма, а рабочая книга будет использована в новом решении Excel.Источником данных в этом пошаговом руководстве является лист с именем Данные для диаграммы.

Добавление данных

  1. Откройте Microsoft Excel.

  2. Щелкните правой кнопкой мыши лист Лист3, затем в появившемся контекстном меню выберите команду Переименовать.

  3. Укажите для листа имя Данные для диаграммы.

  4. Добавьте на лист Данные для диаграммы следующие данные. При этом ячейка A4 должна быть левым верхним углом, а ячейка E8 — правым верхним углом.

    Q1

    Q2

    Q3

    Q4

    Запад

    500

    550

    550

    600

    Восток

    600

    625

    675

    700

    Север

    450

    470

    490

    510

    Юг

    800

    750

    775

    790

Затем добавьте на первый лист диаграмму, отображающую эти данные.

Добавление диаграммы в Excel

  1. На вкладке Вставка в группе Диаграммы щелкните элемент Столбцы, а затем — Все типы диаграмм.

  2. В диалоговом окне Вставка диаграммы нажмите кнопку ОК.

  3. На вкладке Конструктор в группе Данные щелкните пункт Выбор данных.

  4. В диалоговом окне Выбор источника данных в окне Диаграмма щелкните пункт Диапазон данных и очистите все выборы по умолчанию.

  5. На листе Данные для диаграммы выберите блок ячеек, содержащий числа, верхней левой ячейкой которого является A4, а нижней правой — E8.

  6. В диалоговом окне Выбор источника данных нажмите кнопку ОК.

  7. Переместите диаграмму, чтобы правый верхний угол был выровнен по ячейке E2.

  8. Сохраните файл для управления C# и именование ним ExcelChart.xlsx.

  9. Закройте приложение Excel.

Создание нового проекта

На этом этапе на основе книги ExcelChart будет создан проект рабочей книги Excel.

Создание нового проекта

  1. Создайте проект книги Excel с именем Моя диаграмма Excel.Выберите в мастере параметр Скопировать существующий документ.

    Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.

  2. Щелкните buttonand Обзор перейти в книгу, созданную ранее в этом пошаговом руководстве.

  3. Нажмите кнопку ОК.

    Созданная книга Excel открывается в конструкторе Visual Studio. Проект Моя диаграмма Excel добавляется в Обозреватель решений.

Установка значений свойств диаграммы

При создании нового проекта рабочей книги Excel, использующего существующую рабочую книгу, элементы управления ведущего приложения автоматически создаются для всех именованных диапазонов, объектов списка и диаграмм в рабочей книге.Имя элемента управления Chart можно изменить с помощью окна Свойства.

Изменение имени элемента управления "Диаграмма"

  • Выберите элемент управления Chart в конструкторе и измените следующие свойства в окне Свойства:

    Свойство

    Значение

    Имя

    dataChart

    HasLegend

    false

Добавление элементов управления

В этом листе переключатели используются для предоставления пользователям возможности быстрого изменения стиля диаграммы.В то же время переключатели должны быть взаимоисключающими — если выбран один переключатель, то другие переключатели в группе выбрать невозможно.Это поведение не реализуется по умолчанию при добавлении нескольких переключателей на лист.

Для реализации этого поведения можно сгруппировать переключатели на пользовательском элементе управления, написать для него программный код, а затем добавить элемент на лист.

Добавление пользовательского элемента управления

  1. В обозревателе решений выберите проект Моя диаграмма Excel.

  2. В меню Проект выберите команду Добавить новый элемент.

  3. В диалоговом окне Добавить новый элемент щелкните Пользовательский элемент управления, назовите элемент управления ChartOptions и нажмите кнопку Добавить.

Добавление переключателей в пользовательский элемент управления

  1. Если пользовательский элемент управления не видим в конструкторе, дважды щелкните ChartOptions в обозревателе решений.

  2. Перетащите элемент управления Переключатель с вкладки Стандартные элементы управленияПанели элементов в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    columnChart

    Текст.

    Гистограмма

  3. Добавьте второй переключатель в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    barChart

    Текст.

    Линейчатая диаграмма

  4. Добавьте третий переключатель в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    lineChart

    Текст.

    График

  5. Добавьте четвертый переключатель в пользовательский элемент управления и измените следующие свойства.

    Свойство

    Значение

    Имя

    areaBlockChart

    Текст.

    Заполненная диаграмма

Затем напишите код, обновляющий диаграмму при нажатии переключателя.

Изменение стиля диаграммы при выборе определенного переключателя

Теперь можно добавить код, который изменяет стиль диаграммы.Для этого необходимо создать для пользовательского элемента управления открытое событие, добавить свойство для задания типа выбора и создать обработчик событий CheckedChanged каждого переключателя.

Создание события и свойства пользовательского элемента управления

  1. В обозревателе решений щелкните правой кнопкой мыши пользовательский элемент управления и выберите команду Перейти к коду.

  2. Добавьте в класс ChartOptions код для создания события SelectionChanged и свойства Selection:

    Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Private selectedType As Microsoft.Office.Interop.Excel.XlChartType = _
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
    
    Public Property Selection() As Microsoft.Office.Interop.Excel.XlChartType
        Get
            Return Me.selectedType
        End Get
        Set(ByVal value As Microsoft.Office.Interop.Excel.XlChartType)
            Me.selectedType = value
        End Set
    End Property
    
    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType =
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

Обработка события переключателей CheckedChanged

  1. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя areaBlockChart и вызовите событие:

    Private Sub areaBlockChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles areaBlockChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя barChart.

    Private Sub barChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles barChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя columnChart:

    Private Sub columnChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles columnChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя lineChart:

    Private Sub lineChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles lineChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. В C# необходимо добавить обработчики событий для переключателей.Можно добавить код в конструктор ChartOptions после вызова InitializeComponent.Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в проектах Office.

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

Добавление пользовательского элемента управления на лист

При построении решения новый пользовательский элемент управления автоматически добавляется в Панель элементов.После этого можно перетащить элемент управления с Панели элементов на лист.

Добавление пользовательского элемента управления на лист

  1. В меню Построение выберите Построить решение.

    Пользовательский элемент управления ChartOptions добавляется в Панель элементов.

  2. В обозревателе решений щелкните правой кнопкой мыши Sheet1.vb или Sheet1.cs и выберите Открыть в конструкторе.

  3. Перетащите элемент управления ChartOptions с Панели элементов на лист.

    В проект добавится новый элемент управления с именем my_Excel_Chart_ChartOptions1.

  4. Измените имя этого элемента управления на ChartOptions1.

Изменение типа диаграммы

Для изменения типа диаграммы создайте обработчик событий, задающий стиль диаграммы в соответствии с параметром, выбранным в пользовательском элементе управления.

Изменение типа диаграммы, отображаемой на листе

  1. Добавьте следующий обработчик событий в класс Sheet1:

    Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            dataChart.ChartType = Me.ChartOptions1.Selection
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. В C# необходимо добавлять обработчик событий для пользовательского элемента управления в событие Startup, как показано ниже.Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в проектах Office.

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

Тестирование приложения

Теперь можно выполнить тестирование рабочей книги, чтобы убедиться в том, что стиль диаграммы обновляется соответствующим образом при выборе переключателя.

Проверка рабочей книги

  1. Нажмите клавишу F5 для запуска проекта.

  2. Выберите различные переключатели.

  3. Убедитесь, что стиль диаграммы меняется в соответствии с выбранным параметром.

Следующие действия

В этом пошаговом руководстве были рассмотрены основные принципы использования переключателей и стилей диаграмм на рабочих листах.Далее будут рассмотрены следующие задачи:

См. также

Основные понятия

Пошаговые руководства с использованием Excel