Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2011, 10:16   #1
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию Delphi + Excel, запись данных в ось Х chart-та

Добрый день.
Загружаю данные в грид на форме, чтобы построить потом по ним график в Excel. Данные представлены тремя колонками. Строю по ним график в Excel через позднее связывание.
Код HTML:
XL:=CreateOLEObject('Excel.Application'); // Создание OLE объекта
формируем лист с данными:
Код HTML:
 XL.Sheets.add;
 XL.Workbooks[1].WorkSheets[1].Name:='Значения RUR';
 XArr_r:=VarArrayCreate([1,DBGrid_rur.FieldCount],varVariant);
 for i := 0 to DBGrid_rur.FieldCount - 1 do begin
   XL.Cells[1,i+1].Value := DBGrid_rur.Fields[i].FieldName;
 end;
 XL.Range['A1',CHR(64+DBGrid_rur.FieldCount)+'1'].Font.Bold := True;

 j := 1;
 DBGrid_rur.DataSource.DataSet.First;
 while not DBGrid_rur.DataSource.DataSet.Eof do
  begin
   i:=1;
   while i<=DBGrid_rur.FieldCount do
    begin
     XArr_r[i] := DBGrid_rur.Fields[i-1].Value;
     i := i+1;
    end;
   XL.Range['A'+IntToStr(j+1), CHR(64+DBGrid_rur.FieldCount)+IntToStr(j+1)].Value := XArr_r;
   DBGrid_rur.DataSource.DataSet.Next;
   j:=j+1;
  end;
 XL.cells.select;
 XL.selection.Columns.AutoFit;
строим график по данным с листа:
Код HTML:
 chart_:=XL.charts.add;
 chart_.ChartType:= 1;
 chart_.HasTitle:=True;
 chart_.ChartTitle.Characters.Text:='Загрузка порта в байтах';
 chart_.ChartTitle.Font.FontStyle:='полужирный';
 chart_.ChartTitle.Font.Size:=12;
 chart_.ChartArea.Select;
 chart_.SeriesCollection.NewSeries;
 chart_.SetSourceData(Source:=XL.Sheets['Значения RUR'].Range['A'+IntToStr(1)+':B'+IntToStr(ADOStoredProc_rur.RecordCount+1)], PlotBy:=xlColumns);
 chart_.ApplyCustomType(ChartType:= xlBuiltIn,TypeName:= 'Графики (2 оси)');
 chart_.HasTitle := True;
 chart_.ChartTitle.Characters.Text := 'статистика RUR';
 chart_.Legend.Position := xlBottom;
 chart_.Axes(xlValue, xlPrimary).HasTitle := True;
 chart_.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text :='Контракты';
 chart_.Axes(xlValue, xlSecondary).HasTitle := True;
 chart_.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text :='Контрольные суммы Charge';
 chart_.Axes(xlCategory).HasMajorGridlines := True;
 chart_.Axes(xlValue).HasMajorGridlines := True;
 chart_.Axes(xlCategory).TickLabelSpacing := 1;
 chart_.Axes(xlCategory).AxisBetweenCategories := False;
 chart_.HasAxis(xlValue):=True;
прошу заметить, что диаграмма имеет тип 'Графики (2 оси)'. График строится, из трех колонок данных, первые две(с данными значений) идет на 2 оси графика.
Все бы хорошо, но есть одно но - необходимо третью колонку с данными, вписать в ось Х. В макросе это сделать проще простого, а средствами дельфи перепробовал кучу способов подстановки, но результата не достиг. Вопрос по мне так глобальный, т.к. в интернете решения конкретного не нашел и большой респект за решение!)
Как заполнить ось Х данными с листа определенной колонки?
funball вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись данных в InterBase через Delphi Harikolo БД в Delphi 7 29.09.2010 22:46
В Excel XP дополнительная ось категории не имеет св-во "линии сетки"? O_H Microsoft Office Excel 1 10.08.2010 16:16
Анализ данных в Chart artemavd Общие вопросы Delphi 9 01.02.2010 16:19
Запись массива данных из Excel в файл txt Maxx Microsoft Office Excel 5 11.12.2009 14:00
Запись в Excel данных таблицы Word Диагностик Microsoft Office Excel 7 02.04.2009 20:55