Навигация
Главная
Поиск
Форум
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
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 60559
Реклама
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

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

Моделирование автомойки на GPSS + Отчет + Блок схемы
База данных склада на Delphi + Схема БД
База данных электронного документооборота на Delphi + бд Intebase

Реклама



Подписывайся на 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 Сентябрь 29 2009 12:28:29 · 0 Комментариев · 7819 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
XPmenu
Язык программиров...
NetGraph [Исходни...
Tenis [Исходник н...
База игр
Counter [Исходник...
Dbgridpack
Разработка клиент...
Пятнашки и крести...
Размещение элемен...
Fig [Исходник на ...
Модифицированная ...
3d Tank [Исходник...
Фундаментальные а...
С. Г. Горнаков - ...
THttpScan v4.1
Scrrlcaptoin
Заставка. Изображ...
Swing. Эффектные...
Delphi. Учимся на...

Топ загрузок
Приложение Клие... 100530
Delphi 7 Enterp... 91960
Converter AMR<-... 20101
GPSS World Stud... 15418
Borland C++Buil... 13063
Borland Delphi ... 9162
Turbo Pascal fo... 7112
Калькулятор [Ис... 5196
Visual Studio 2... 5034
FreeSMS v1.3.1 3559
Случайные статьи
Ремонт бамперов.
Для получения согл...
Окно «Параметры Wo...
Вычисление значени...
Классификация баз ...
Too many variables
Определение параме...
Реализация требова...
TRACE (НАЧАТЬ ТРАС...
Внешние проверки
Библиография
Как создать новый ...
Основные объекты W...
Выбор разрешения э...
Простые свойства
COMChat.idl
Обычно при внедрен...
Protocol) 355IAS (...
Матрицы
Рабочий стол, меню...
Вычисление хеш-фун...
клиентов удаленног...
Устройства имеют с...
службы, связанную ...
Законы эмпирическо...
Статистика



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


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