Диаграммы Excel в Delphi. Общие сведения.
Сегодня мы рассмотрим один из наиболее интересных, на мой взгляд, моментов работы с Excel в Delphi — построение диаграмм.
Забегая немного вперед, скажу, что есть несколько способов добавления диаграммы в рабочую книгу Excel. Чтобы все статьи по вопросам автоматизации Excel в блоге были как-то логически связаны, я решил сегодня рассмотреть способ добавления диаграммы через объект ChartObjects, с которым мы встречались, когда разбирали методы объекта WorkSheet.
План статьи:
Итак, поставим перед собой цель — построить простой линейный график на основании данных таблицы (StringGrid) нашего приложения. При этом, чтобы продолжить предыдущую тему, постараемся скопировать таблицу на лист один-к-одному.
1. Копируем данные из таблицы и оформление StringGrid.
Для копирования данных из таблицы на лист Excel воспользуемся простейшей процедурой, которую мы уже с Вами рассматривали. Для наглядности, приведу листинг процедуры ещё раз:
Теперь начнем копировать оформление. Во-первых, необходимо определить свойство BorderStyle у StringGrid — оно может быть либо bsSingle либо bsNone. В первом случае внешние границы таблицы будут выделяться. Отсюда следует, что и наша таблица в Excel должна иметь окантовку. Делается это просто:
Во-вторых, StringGrid может быть с отрисованными внутренними линиями и без них. За отрисовку внутренних линий отвечают два параметра из свойства Options у StringGrid: goFixedVertLine (прорисовка вертикальных линий в ) и goFixedHorzLine (прорисовка горизонтальных линий в StringGrid).
Проверяем наш StringGrid и, в случае необходимости, прорисовываем внутренние границы ячеек:
А теперь самое интересное — определение цветов StringGrid и перенос их в таблицу Excel. Для того, чтобы перевести цвет в Delphi в цвет, приемлемый для Excel, напишем небольшую подпрограмму:
где Color — это любой из цветов в Delphi, например clRed или clBtnFace. В итоге мы получим три составляющих для RGB, который допускается использовать при заливке ячеек в Excel.
Теперь можно копировать цвета фиксированных ячеек StringGrid:
2. Добавление и редактирование диаграммы Excel
Теперь, имея в своем распоряжении данные, можно приступать к построению диаграммы Excel с помощью Delphi.
Для того, чтобы добавить в коллекцию ChartObjects новый объект необходимо выполнить метод Add:
Left и Top — начальные координаты нового объекта (в пикселях), относительно левого верхнего угла ячейки A1 на листе или в левом верхнем углу графика.
Width и Height — соответственно ширина и высота новой диаграммы.
В результате выполнения метода в коллекцию ChartObjects добавляется новый объект. Пока никаких данных объект не использует. По сути в добавляется пустой холст диаграмм Excel.
Чтобы получить ссылку на вновь добавленный объект необходимо выполнить следующую операцию:
Метод ChartWizard содержит следующие параметры:
Как и для любых других методов Excel, в Delphi допускается опускать некоторые параметры или отмечать их как EmptyParam.
Теперь построим наш график. Для этого я написал небольшую процедуру:
Как видите, все достаточно просто. Берется таблица StringGrid, данные из неё переносятся в Excel на активный лист и, затем, эти данные используются для построения графика. Причём первая ячейка таблицы используется для подписи рядов данных. В результате выполнения процедуры я получил следующую диаграмму Excel:
Ну, и наконец, для того, чтобы представить этот же график в объемном виде, воспользуемся одним из многочисленных свойств объекта Chart — ChartType:
На сегодня все В следующий раз займемся свойствами объекта Chart, научимся строить различные типы диаграмм и изменять область построения диаграммы. А пока можете поэкспериментировать с параметрами у ChartWizard и посмотреть какие ещё виды диаграмм Excel Вы сможете построить в Delphi.
Предыдущая статья на тему работы с Excel в Delphi — «Excel в Delphi. Методы объекта WorkSheet (лист).«
Следующая статья на тему работы с Excel в Delphi — »Excel в Delphi. Работа с объектом Range (диапазон)«
Книжная полка
Отображают соотношение частей и целого и строятся только по одному ряду данных, первому в выделенном диапазоне. Эти диаграммы можно использовать, когда компоненты в сумме составляют 100%.
Графические способы представления данных в Excel
Здесь не придется дополнительно создавать информационный массив с перечнем задач – они создаются в ходе ежедневной работы с системой. Поэтому достаточно просто кликнуть по соответствующей кнопке – и сервис автоматически выстроит соответствующий график.
Динамическая диаграмма в Excel
Есть 2 метода создания динамической диаграммы в Excel
Теперь давайте подробно объясним каждый из методов на примере.
# 1 Как создать динамическую диаграмму с использованием диапазона имен?
Хорошо, позвольте мне объяснить вам на примере. Ниже приведены данные опроса о потребности в знаниях Excel по профессиям. Приведенные ниже данные содержат сведения о необходимых знаниях Excel и диапазон заработной платы для этих профессий.
Вы можете скачать этот шаблон Excel для динамической диаграммы здесь — Шаблон для динамической диаграммы Excel
Теперь вставьте одну простую столбчатую диаграмму, показывающую диапазоны заработной платы.
Теперь, если список профессий увеличивается, эта диаграмма не может автоматически брать этот диапазон.
Я обновил данные по двум другим профессиям, указав диапазон их заработной платы. Этот график все еще находится в диапазоне от A2: A6.
Теперь нам нужно сделать этот диапазон динамическим. Чтобы сделать диапазон динамическим, нам нужно определить имя для этого диапазона ячеек.
Выполните следующие шаги, чтобы сделать диапазон динамическим.
Примечание. Мы не можем просто указать название диапазона; скорее, нам нужно упомянуть это вместе с именем листа, т. е. = ‘Таблица’! Salary_Range
Нажмите кнопку ОК, откроется окно ниже и нажмите кнопку Изменить.
Примечание. Мы не можем просто указать название диапазона; скорее, нам нужно упомянуть это вместе с именем листа, т. е. = ‘Таблица’! Profession_Range
Вот Это Да! Это работает. Устройтесь поудобнее и расслабьтесь. Прошли те времена, когда нам нужно было обновлять данные, а также диапазон диаграммы. Теперь у нас есть динамический диапазон диаграммы для автоматического обновления диапазонов динамической диаграммы.
Построение, редактирование и форматирование диаграмм — КиберПедия
Для последующего редактирования линии тренда требуется ее выделение (двойнымщелчком левой кнопки мыши), при этом появляются специальные отметки на линии тренда. С помощью правой кнопки мыши можно вызвать контекстное меню, обеспечивающее форматирование (команда Форматировать линию тренда),либо удаление линии тренда (командаОчистить).