![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.04.2009
Сообщений: 44
|
![]()
Добрый день.
Загружаю данные в грид на форме, чтобы построить потом по ним график в 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; Все бы хорошо, но есть одно но - необходимо третью колонку с данными, вписать в ось Х. В макросе это сделать проще простого, а средствами дельфи перепробовал кучу способов подстановки, но результата не достиг. Вопрос по мне так глобальный, т.к. в интернете решения конкретного не нашел и большой респект за решение!) Как заполнить ось Х данными с листа определенной колонки? ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение и запись данных в 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 |