Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 130

/ вопрос открыт /

Здравствуйте, эксперты!
В своей программке я переношу в листы книги Excel с помощью компонента TExcelApplication содержание TStringGrid - ов.Мне хотелось бы,что бы в эту же книгу,отдельным листом заносился бы график построенный по m - ому и n - ому столбцам таблицы(пусть по Y m столбец ,а по X n столбец).Покажите как это делается.

GAZ Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 22 ноября 2007, 07:24
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Нахушев Азамат Владимирович

Здравствуйте, GAZ!
Здесь без использования комнонента TExcelApplication (с использованием OLE),но принцип тот же.


begin
XLApp:=CreateOleObject('Excel.Application');//создаем объект Excel

XlApp.Charts.Add();//добавить график в новый лист в той же книге
XlApp.ActiveChart.ChartType:=66;//тип графика - линейный
XlApp.ActiveChart.HasDataTable:= True;//отображать таблицу данных внизу
XlApp.ActiveChart.DataTable.ShowLegendKey:=True;//отображать в таблице данных ключ
XlApp.ActiveChart.ChartTitle.Characters.Text:=График';//титул графика
XlApp.ActiveChart.Axes(1, 1).HasTitle:=True;//отображение наименования оси Х
XlApp.ActiveChart.Axes(1, 1).AxisTitle.Characters.Text:='месяцы';//наименование
//оси Х
XlApp.ActiveChart.Axes(2, 1).HasTitle:=True;;//отображение наименования оси Y
XlApp.ActiveChart.Axes(2, 1).AxisTitle.Characters.Text:='руб.';;//наименование
//оси Y

XlApp.ActiveChart.SeriesCollection(1).XValues:='=Отчет!R6C1:R7C1';//значение по
// оси X
XlApp.ActiveChart.SeriesCollection(1).Values:='=Отчет!R6C3:R7C3';//значение по
// оси Y


XlApp.ActiveChart.SeriesCollection.NewSeries;//добавить новую линию
XlApp.ActiveChart.SeriesCollection(2).Name:='=Отчет!R5C5:R5C5';
XlApp.ActiveChart.SeriesCollection(2).Values:='=Отчет!R6C5:R7C5';//значение по
// оси Y



end;

Ответ отправил: Нахушев Азамат Владимирович (статус: 1-ый класс)
Время отправки: 22 ноября 2007, 08:23


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 22 ноября 2007, 09:38; участников в обсуждении: 1.
GAZ

GAZ (статус: Посетитель), 22 ноября 2007, 09:38 [#1]:

А можно немного поподробней разъяснить раз с использованием OLE.
У меня если кратко то создание листа следующее

const lcid=LOCALE_USER_DEFAULT;

var ExlApp: TExcelApplication;
ExlWorkBook: ExcelWorkbook;
ExlWorkSheet: ExcelWorkSheet;
....
ExlApp:=TExcelApplication.Create(Self);
.....
ExlWorkBook:=ExlApp.Workbooks.Add(EmptyParam,0);//создание новой книги
....
или
....
ExlWorkBook:=ExlApp.Workbooks.Add(path+fname, lcid); //открытие её если она уже существует (path+fname - путь к файлу+имя файла)
...
ExlWorkSheet:=ExlApp.Worksheets.Add(EmptyParam, EmptyParam,
EmptyParam, EmptyParam, lcid) as ExcelWorksheet;//здесь создание листа

Так вот какие тогда параметры должны быть в скобках
XlApp.Charts.Add();//добавить график в новый лист в той же книге

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:36
Выполнено за 0.02 сек.