Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> D7 И ГРАФИКИ EXCEL 
:(
    Опции темы
serjufa
Дата 12.5.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 28.3.2003

Репутация: нет
Всего: 1



ИМЕЮ табл EXCEL. нужно программно построить графики функций. но, колонки идут не подряд. нужны лишь 'E1:E46' 'H1:H46' 'K1:K46' 'N1:N46', где 'E1:E46' - годы расчета, другие колонки - расчетные параметры.

теперь код:
Код

  XL := TExcelApplication.Create(Self);
  WB := TExcelWorkbook.Create(Self);
  ASheet := TExcelWorksheet.Create(Self);
  try
    XL.Connect;
    //    WB.ConnectTo(XL.Workbooks.Add(EmptyParam, lcid));
    WB.ConnectTo(XL.Workbooks.Open(
      FullPathXLS,                      // Filename: WideString;
      2, // UpdateLinks: OleVariant; 2 - never update
      False,                            // ReadOnly: OleVariant;
      EmptyParam,                       // Format: OleVariant;
      EmptyParam,                       // Password: OleVariant;
      EmptyParam,                       // WriteResPassword: OleVariant;
      EmptyParam,                       // IgnoreReadOnlyRecommended: OleVariant;
      EmptyParam,                       // Origin: OleVariant;
      EmptyParam,                       // Delimiter: OleVariant;
      EmptyParam,                       // Editable: OleVariant;
      EmptyParam,                       // Notify: OleVariant;
      EmptyParam,                       // Converter: OleVariant;
      False,                            // AddToMru: OleVariant;
      lcid));

    ASheet.ConnectTo(XL.ActiveSheet as ExcelWorksheet);

    // последняя ячейка
    LastCell := ASheet.Range['E1', EmptyParam].SpecialCells(xlCellTypeLastCell,
      EmptyParam);

    // постройка диаграммы в отдельном листе (по-умолчанию)
    AChart1 := WB.DefaultInterface.Charts.Add(EmptyParam,
      ASheet.DefaultInterface,
      1,                                // кол-во диаграмм
      EmptyParam, lcid) as _Chart;
    AChart1.Name := 'Отчет 1';          // имя листа диаграммы
    AChart1.ChartType := xlLineMarkers; // тип диаграммы

    // задаем диапозон данных 
    AChart1.SetSourceData(ASheet.Range['E1:E46', EmptyParam], xlColumns);
    (AChart1.SeriesCollection(EmptyParam, lcid) as SeriesCollection).NewSeries;
    AChart1.SetSourceData(ASheet.Range['H1:H46', EmptyParam], xlColumns);
    (AChart1.SeriesCollection(EmptyParam, lcid) as SeriesCollection).NewSeries;
    AChart1.SetSourceData(ASheet.Range['K1:K46', EmptyParam], xlColumns);
    (AChart1.SeriesCollection(EmptyParam, lcid) as SeriesCollection).NewSeries;
    AChart1.SetSourceData(ASheet.Range['N1:N46', EmptyParam], xlColumns);

   // изменяем локацию и внедряем в наш лист!
    AChart1 := AChart1.Location(xlLocationAsObject, ASheet.Name);
    with ASheet.Shapes.Item((ASheet.ChartObjects as ChartObjects).Count) do
    begin
      Left := ASheet.Range['E1:D1', EmptyParam].Width + 8;
      Top := 8;
      Width := 400;
      Height := 200;
    end;
    ASheet.Range['E1', EmptyParam].Select;
    with AChart1 do begin               // украшательства диаграммы
      HasTitle[lcid] := True;
      ChartTitle[lcid].Characters[EmptyParam, EmptyParam].Text :=
        'Графики разработки';
      with (Axes(xlCategory, xlPrimary, lcid) as Axis) do begin
        HasTitle := True;
        AxisTitle.Characters[EmptyParam, EmptyParam].Text := 'Годы';
      end;
      (Axes(xlValue, xlPrimary, lcid) as Axis).HasTitle := False;
      with (Axes(xlCategory, xlPrimary, lcid) as Axis) do begin
        HasMajorGridlines := False;
        HasMinorGridlines := True;
      end;
      with (Axes(xlValue, xlPrimary, lcid) as Axis) do begin
        HasMajorGridlines := True;
        HasMinorGridlines := False;
      end;
    end;

    // поменяем цвет линии и маркеров
     // у первой серии
    with (AChart1.SeriesCollection(1, lcid) as Series) do begin
      with Border do begin
        Color := clBlue;                // синий
        Weight := xlMedium;
      end;
      MarkerForegroundColor := clBlue;
      MarkerBackgroundColor := clBlue;
      MarkerStyle := xlSquare;
      MarkerSize := 7;
    end;
    // у второй серии...
    with (AChart1.SeriesCollection(2, lcid) as Series) do begin
      with Border do begin
        Color := clGreen;
        Weight := xlMedium;
        LineStyle := xlDash;
      end;
      MarkerForegroundColor := clGreen;
      MarkerBackgroundColor := clGreen;
      MarkerStyle := xlSquare;
      MarkerSize := 7;
    end;
    // у третьей серии...



ошибка вылезает тут 
// у второй серии...
with (AChart1.SeriesCollection(2, lcid) as Series) do begin


как быть?
PM MAIL   Вверх
DarkProg
Дата 12.5.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



было бы неплохо написать что за ошибка smile


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
serjufa
Дата 13.5.2010, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 28.3.2003

Репутация: нет
Всего: 1



Цитата(DarkProg @ 12.5.2010,  09:43)
было бы неплохо написать что за ошибка smile

Цитата(DarkProg @ 12.5.2010,  09:43)
было бы неплохо написать что за ошибка smile


ошибка там, где красная строка

ссылка на рис
http://www.mediafire.com/imageview.php?quickkey=my22zgmomfz


user posted image

Это сообщение отредактировал(а) serjufa - 13.5.2010, 06:01
PM MAIL   Вверх
Akella
Дата 13.5.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



serjufa, почитай, тебе будет полезно
http://forum.vingrad.ru/topic-48020/125.html

Добавлено через 2 минуты и 38 секунд
Цитата(serjufa @  12.5.2010,  14:53 Найти цитируемый пост)
// у второй серии...
    with (AChart1.SeriesCollection(2, lcid) as Series) do begin

Может её нет? Второй серии. Или что-то не так сней.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.5906 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.