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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 15:47   #1
serjufa
Пользователь
 
Регистрация: 18.05.2007
Сообщений: 19
По умолчанию D7 И ГРАФИКИ EXCEL

ИМЕЮ табл 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(Empty Param, 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(Empt yParam,
ASheet.DefaultInterface,
1, // кол-во диаграмм
EmptyParam, lcid) as _Chart;
AChart1.Name := 'Отчет 1'; // имя листа диаграммы
AChart1.ChartType := xlLineMarkers; // тип диаграммы

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

// изменяем локацию и внедряем в наш лист!
AChart1 := AChart1.Location(xlLocationAsObject , ASheet.Name);
with ASheet.Shapes.Item((ASheet.ChartObj ects 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


как быть?
serjufa вне форума Ответить с цитированием
Старый 12.05.2010, 16:03   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию Вопрос

А что за ошибка? Как ругается?
baster128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графики в Excel (подпись данных) Python Microsoft Office Excel 5 02.02.2010 11:36
Графики Андрей.12 Microsoft Office Excel 1 08.12.2009 22:00
Графики! Медина Помощь студентам 4 28.05.2009 22:58
Графики delphin100 Общие вопросы Delphi 6 16.03.2008 10:40