Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Построение графика в Excel через TExcelApplication [D7, WinXP]


Антоныч ©   (2005-07-04 17:11:00) 

Приведите, пожалуйста, кто-нибудь простой пример. А то сам чего-то не могу сориентироваться.


Антоныч   (2005-07-14 16:50:00) [1]

Все-таки снова вернусь к этой теме, тем более что обсуждение-то не закрыто :). Это все хорошо и интересно и даже наверное правильно :), но меня интересует именно как это сделать через компоненты в закладке Servers. Вот мой код:
var
   WorkBk: _WorkBook;
   WorkSheet: _WorkSheet;
   Chart : _Chart;
   IIndex: OleVariant;
begin
 try
 XLApp.WorkBooks.Open('D:\Output.xls', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam,0);
 IIndex:=XLApp.Workbooks.Count;
 WorkBk:=XLApp.WorkBooks.Item[IIndex];
 WorkSheet:=WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
 Chart:=WorkBk.Charts.Add(EmptyParam,WorkSheet,1,xlXYScatterSmooth,IIndex) as _Chart;
 XLApp.Visible[IIndex]:=True;
 except on EOleException do XLApp.Quit;
 end;
end;
На выделенной строке происходит ошибка. Почему?


Ольга   (2005-07-04 18:28:00) [2]

Уточнение предыдущего текста:
Book:= Excel.ActiveWorkBook;
Sheet:= Book.ActiveSheet;
Range1:= Sheet.Range[Cells[r1, c1], Cells[r1, c2]];
Range2:= Sheet.Range[Cells[r2, c3], Cells[r2, c4]];
Book.Charts.Add;
Book.ActiveChart.ChartType:= xlXYScatterSmooth;
Book.ActiveChart.SetSourceData(Range1, xlRows);
Book.ActiveChart.SeriesCollection(1).XValues := Range2;


Ольга   (2005-07-04 18:18:00) [3]

Из Delphi:
Book:= Excel.ActiveWorkBook;
Sheet:= Book.ActiveSheet;
Range:= Sheet.Range[Cells[r1, c1], Cells[r1, c2]];
Book.Charts.Add;
Book.ActiveChart.ChartType:= xlXYScatterSmooth;
ExlBook.ActiveChart.SetSourceData(Range, xlRows);
ExlBook.ActiveChart.SeriesCollection(1).XValues := Range;


Антоныч   (2005-07-04 17:45:00) [4]

Да записал я макрос сразу-же. Проблема с переводом :). Вылетает ошибка при создании графика на строке
WorkBk.Charts.Add(EmptyParam,WorkSheet,1,xlXYScatterSmooth,IIndex);
Вот сам макрос:
   Charts.Add
   ActiveChart.ChartType = xlXYScatterSmooth
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(1).XValues = "=Данные!R2C1:R1206C1"
   ActiveChart.SeriesCollection(1).Values = "=Данные!R2C2:R1206C2"
   ActiveChart.Location Where:=xlLocationAsNewSheet


Ega23   (2005-07-04 17:37:00) [5]

Макрос запиши. Посмотри его через VB. Переведи код на Delphi. Всё.


Наверх

Титульная страница Поиск, карта сайта Написать письмо