Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

Chart в Excel   Найти похожие ветки 

 
Kate   (2003-04-29 10:17) [0]

Подскажите, пожалуйста, как из delphi изменить диапазон значений в excel, по которому строится диаграмма? тип диаграммы - линейный график. исходный код на vba:
ActiveChart.SeriesCollection(1).Values = "="Исходные данные"!R2C2:R7C2"


 
Nikolay M.   (2003-04-29 10:31) [1]

Если через раннее связывание, то точно так же:

var
Cell1, Cell2 : OleVariant;
Sheet1, Sheet2 : Excel_TLB._Worksheet;
Range: Excel_TLB.Range;
Series : Excel_TLB.Series;
begin
Sheet1 := Workbook.Sheets["Лист1"] as _WorkSheet;
Sheet2 := Workbook.Sheets["Лист2"] as _WorkSheet;
Sheet1.Select (EmptyParam, LOCALE_USER_DEFAULT);
Sheet1.Activate (LOCALE_USER_DEFAULT);
Cell1 := Sheet2.Cells.Item[1, 1];
Cell2 := Sheet2.Cells.Item[1, 10];
ExcelApp.ActiveChart.SetSourceData (Sheet2.Range[Cell1, Cell2], xlColumns);
end;

Только если ты правишь уже имеющуюся диаграмму (например, создал ее руками и редактируешь получившийся шаблон), то эта диаграмма должна быть выделена, иначе fMain.ExcelApp.ActiveChart будет nil. Вот такие грабли :(


 
Kate   (2003-04-29 10:43) [2]

ок. спасибо. но проблема немного не в этом. объясню подробнее:
график состоит из линий, каждая линия строится на основании столбца в таблице, расположенной на листе "Исходные данные". причем если сразу указать диапазон для линии с первой строки до, например, 400-й, линия не построится, потому как в таблице именно в этом столбце будут заполнены, например, строки 5-10. поэтому нужно четко указать, что для данной линии (для данного ряда) диапазон значений будет в строках с 5 по 10. если есть идеи, буду благодарна


 
Nikolay M.   (2003-04-29 10:55) [3]

Потрясно... От того, как указать исходные данные для графика плавно перешли к "как указать с 5 по 10 строки"...
У листа есть свойство UsedRange - какие ячейки заняты данными.


 
Kate   (2003-04-29 11:09) [4]

блин! имелось в виду что нужно указать для, например, первой линии - что значения находятся в диапазоне R5C2:R10C2. и если уж так весело прикалываемся, то, между прочим, я спрашивала про диапазон значений для ряда, а не источник данных для всей диаграммы


 
Nikolay M.   (2003-04-29 11:20) [5]

:))))

Вот выдрал. Думаю вместо XValues можно тупо писать Values, но сам не заморачивался.

var
Series : Excel_TLB.Series;
begin
Series := fMain.ExcelApp.ActiveChart.SeriesCollection (1, LOCALE_USER_DEFAULT) as Excel_TLB.Series;
Series.Name := "="Задание №1"";
Series.XValues := "=" + #39 + "Данные для хар. кривых" + #39 + "!R2C1:R100C1";
end;


 
Kate   (2003-04-29 12:31) [6]

спасибо. я, правда, не пользуюсь библиотекой типов, но этот код натолкнул меня на правильную мысль. теперь у меня новая проблема - как получить ActiveChart, учитывая, что я не создаю диаграмму, а открываю файл?


 
Nikolay M.   (2003-04-29 14:50) [7]

По поводу чарта я написал еще в первом посте - если диаграмма уже создана в книге, то она должна быть выделена (в своем листе, разумеется). А потом Activate и Select для листа с этой диаграммой и ActiveChart будет то, что нужно. Только что делать, если диаграмм больше одной на листе, я не знаю :(
Есть Charts, ChartObject(s), но я с ними запарился ковыряться и сделал так, что у меня на одном листе не могло быть больше одного графика.


 
Kate   (2003-04-30 09:48) [8]

Николай, спасибо, я уже разобралась, все работает четко, причем не важно, сколько диаграмм на листе. так что если будут проблемы в этом плане, обращайся, подскажу как грамотно сделать. а у меня очередная заморочка: надо изменить диапазон значений на оси Y. я уже запарилась с этими Axis и Axes. если есть идеи, подскажи, пожалуйста


 
Nikolay M.   (2003-04-30 10:49) [9]

Ушло на мыло.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-59727
Makhanev A.S.
2003-05-05 19:37
2003.05.19
сортировка в TShellListView


1-59685
lightix
2003-05-07 16:31
2003.05.19
Вопрос по QReport


14-59920
ZeroDivide
2003-04-28 09:38
2003.05.19
Телефонная история


11-59641
Сандро
2002-08-12 12:48
2003.05.19
Формы


1-59687
ODINUS
2003-05-07 16:33
2003.05.19
Gif в Delphi 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский