Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65019
Модуль Forms 64805
Пример работы с... 63154
ТЕХНОЛОГИИ ДОСТ... 61521
Имитационное мо... 57363
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,081
новичок: Abdukarimov A
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование вычислительного центра на GPSS + Отчет + Блок схема
Игра Sokoban на Delphi + Блок схемы
Медиа плейер на Delphi + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Область (интервал ячеек)



Попробуем задать координаты области и поработать с ними. В первую оче-
редь нас могут заинтересовать такие параметры этой области, как количест-
во ячеек и ее реальный адрес на листе рабочей книги Excel. Во-вторых, нам
будет полезно узнать, как изменить, скопировать или очистить содержание
ячеек этой области.

Рис. 12.10. Запись и чтение комментария для ячейки
Рассмотрим в качестве примера следующие процедуры (см. приложение на
сопроводительном диске книги).
Параметры области, заполнение ячеек области
procedure TOKBottomDlg3.addresExit(Sender: TObject);
begin
// Определяем ссылку на область
Range:=forml.E.ActiveSheet.Range[addres.Text];
count.Text:=inttostr(Range.Count); // Количество ячеек в области
area addres.Text:=Range.Address; // Реальный адрес области
end;
procedure TOKBottomDlg3.ButtonlClick(Sender: TObject);
begin
// Выделяем область
Range.Select;
end;
procedure TOKBottomDlg3.Button3Click(Sender: TObject);
begin
// Очищаем область
Range, deadend;
procedure TOKBottomDlg3.Button2Click(Sender: TObject);
begin
// Заполняем ячейки выбранной области
Range.Value:=textl.Text;
end;



Результат выполнения процедуры заполнения ячеек области представлен
на рис. 12.11.

Рис. 12.11. Заполнение ячеек области
К области можно применять почти все методы, которые мы применяли к
одной ячейке. Есть и дополнительные возможности, присущие области.
Важной особенностью является использование виртуального адреса внутри
заданной области. Это означает, что внутри области можно задавать адреса,
начиная с адреса А1 для верхней левой ячейки области. Эта замечательная
особенность обусловлена тем, что объект Range включает в себя такой же
по характеристикам дочерний объект Range. Первая ячейка дочернего объ-
екта имеет виртуальный адрес А1, а ее реальный адрес совпадает с адресом
начала области. Это может избавить программиста от многих проблем, свя-
занных с адресацией ячеек, и существенно упростить исходный текст про-
граммы. Например, зададим адрес и размер области 'B5.F15'. Получим
ссылку на нее:
Range:=E.ActiveSheet.Range['B5:F15'] ;



После этого определим дочернюю область, принадлежащую заданной облас-
ти. Для этого используем оператор:
MyRange:=Range['Al:В2'];



Область MyRange принадлежит области Range и находится в ее начале. Да-
лее заполним ячейки области MyRange строкой символов, например:
MyRange.Value:='222';



Все эти манипуляции можно выполнить иначе (см. следующую процедуру).
Использование виртуальной области
procedure TOKBottomDlg3.Button4Click(Sender: TObject);
begin
Range.Range[addres1.Text].Value:=text2.Text;
end;



Результат будет таким же (рис. 12.12).
Мы рассмотрели случаи, когда область задается программным путем по-
средством адресов. Но часто пользователь просто выделяет область ячеек, а
затем выполняет с ней последовательность каких-либо действий. Програм-
мист Delphi, разрабатывая свое приложение, должен учесть этот случай и
обработать выделенную часть листа рабоче# книги Excel. Одним из свойств
объекта Application является объект Selection, который обладает множеством
свойств и методов, присущих визуальным компонентам Excel, в том числе
некоторыми свойствами объекта Range, позволяющими обеспечить доступ к
выделенной области. В общем случае для обеспечения доступа к выделен-
ным ячейкам можно воспользоваться оператором
Range:=Е.Selection;



который присваивает переменной Range значение ссылки на область выде-
ленных ячеек. После этого программист может воздействовать на эту об-
ласть.
Есть и другой способ обращения к выделенной области — без использова-
ния промежуточных ссылочных переменных. Можно напрямую применять
к объекту Selection методы и использовать свойства объекта Range, но толь-
ко когда выделена хотя бы одна ячейка. Следующие процедуры демонстри-
руют это.

Рис. 12.12. Работа с виртуальной областью
Определение адреса и заполнение выделенной области

procedure TOKBottomDlg3.ButtonUClick(Sender: TObject);
begin
address_s.Text:=E.Selection.Address;
end;
procedure TOKBottomDlg3.Buttonl2Click(Sender: TObject);
begin
E.Selection.Value:=text_s.Text;
end;



На рис. 12.13 представлена форма приложения Delphi, в которой использу-
ются представленные процедуры, определяющие адрес выделенной области
и заполняющие все ее ячейки значением, выбранным пользователем этого
приложения.

Рис. 12.13. Работа с областью выделенных ячеек
Когда требуется программно выделить интервал ячеек листа Excel, исполь-
зуют метод Select объекта Range. После этого можно обращаться к ячейкам
уже как к выделенной области, используя объект Selection.
Обычно к выделенной области применяют методы, позволяющие копиро-
вать ее содержимое в буфер обмена (метод Сору), или, реже, методы, по-
зволяющие переместить (метод Cut) содержимое в другую область или при-
ложение или документ. Выделенную область ячеек можно также заменить
информацией из буфера обмена (метод PasteSpecial). Все эти методы ис-
пользуются, как правило, применительно к объекту Selection, но иногда бы-
вает необходимо применить их непосредственно к ячейкам или областям
ячеек, используя объект Range. Все зависит от конкретной постановки зада-
чи и от стиля программирования.
Программное выделение и очистка области
procedure TOKBottomDlg3.ButtonlClick(Sender: TObject)
begin
Range.Select;
end;
procedure TOKBottomDlg3.Buttonl3Click(Sender: TObject);
begin
E. Selection.deadend;



От объектов, описывающих ячейки и области, перейдем к другим объек-
там — столбцам и строкам. Если задана область ячеек и получена ссылка
Range на нее, то количество столбцов будет определяться свойством Count
коллекции Columns объекта Range, а количество строк — свойством Count
коллекции Rows объекта Range. Доступ ко всем строкам и столбцам листа
рабочей книги предоставляют коллекции Rows и Columns объекта
ActiveSheet — активного листа рабочей книги. Следующие процедуры по-
зволяют, соответственно, определить количество строк и столбцов, очистить
ячейки в выбранных столбцах и строках и заполнить их.
Очистка и заполнение ячеек строк и столбцов листа рабочей книги
procedure TOKBottomDlg3.FormCreate(Sender: TObject);
begin
row_ount.text:=inttostr(forml.E.Application.ActiveSheet.Rows.Count);
col_ount.text:=inttostr(forml.E.Application.ActiveSheet.Columns.Count);
end;
procedure TOKBottomDlg3.Button7Click(Sender: TObject);
begin
E.ActiveSheet.Rows[Row.Value].Clear;
E.ActiveSheet.Rows[Row.Value].Value:= text_rc.Text;
end;
procedure TOKBottomDlg3.Button8Click(Sender: TObject);
begin
E.ActiveSheet.Columns[Col.Value].Clear;
E.ActiveSheet.Columns[Col.Value].Value:= t ext_rc.Text;
end;



На рис. 12.14 показан результат выполнения представленных процедур.
Опубликовал Kest September 29 2009 12:28:29 · 0 Комментариев · 7260 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
100 компонентов о...
Профессиональное ...
WinAmp
Delphi World 6.0
Visual Basic for ...
BDEPack
SODA [Исходник на...
Синтаксический ан...
CoolDev TipsSyste...
ScreenSaver [Исхо...
Delphi на примерах
CLR via C#
PDF
XPButtons
ATComponents
Х. М. Дейтел, П. ...
Самоучитель C++
Pass [Исходник на...
начисление процен...
Шифрование по алг...

Топ загрузок
Приложение Клие... 100464
Delphi 7 Enterp... 86596
Converter AMR<-... 20076
GPSS World Stud... 12625
Borland C++Buil... 11745
Borland Delphi ... 8553
Turbo Pascal fo... 7037
Visual Studio 2... 4998
Калькулятор [Ис... 4759
FreeSMS v1.3.1 3541
Случайные статьи
Анализ общей линей...
Чтобы определить о...
Файлы не подчиняю...
Получение цифровог...
Реляционные отноше...
Как обратиться к с...
Если вы рассчитыва...
Произвольные фигуры
Набор команд объек...
Главная или внутре...
Аргументом при сло...
Проблема передачи ...
Вы можете проверит...
Эвристические мето...
Определение параме...
Строки в стиле С о...
Компиляция
2.1.1. Константы
Изучение способов ...
Глава 10. Кратк...
Разработка чужими ...
Печать утверждений
Воспроизведение ау...
Доменные зоны мира
Приемы, которые тр...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?