Лист, ячейки которого непосредственно хранят информацию, является при-
надлежностью книги. В рабочей книги может быть больше одного листа.
Как получить доступ к списку листов или к любому листу рабочей книги?
Ответ: с помощью коллекции Sheets. Как и любая коллекция, она содержит
свойство Count:integer (количество элементов коллекции) и набор объектов
Item(i:integer) — собственно листы, где i — индекс выбранного листа (от 1
до Count). Некоторые методы коллекции Sheets: Select — выделение всех
листов рабочей книги, Сору — копирование всех листов в новую рабочую
книгу, PrintPreview — предварительный просмотр печати, PrintOut — вывод
на печать, Add — добавление нового листа в рабочую книгу.
Рассмотрим метод Add подробнее. Его можно использовать как без аргу-
ментов, так и с аргументами, определяющими место, куда будут добавлены
листы (лист), их количество и тип. Если использовать метод Add так, как
показано в следующем примере, то будет добавлен лист перед листом Sheet.
Добавление нового листа перед указанным листом рабочей книги
procedure ToKBottomDlg3.Button1Click(Sender: TObject);
begin
Sheets.Add(Before:=Sheet) ;
end;
Добавив листы или просто открыв или создав рабочую книгу, мы можем
получить список листов и доступ к любому листу рабочей книги. Для этого
используем уже известные свойства коллекции Sheets.
Получение списка листов рабочей книги
procedure TOKBottomDlg3.FormCreate(Sender: TObject);
var a_:integer;
begin
for a_:=l to Sheets.count do ListBoxl.Items.Add(Sheets.Item[a_].name);
end;
Результат выполнения процедуры представлен на рис. 11.8.
После загрузки списка листов мы можем получить доступ к любому листу
для работы с ним. Для начала попробуем изменить непосредственно свой-
ства самого листа, например его имя. Имя листа представляет собой строку
и содержится в свойстве Name объекта Sheet. Доступ к листу рабочей книги
получим, например, с помощью следующей процедуры.
Получение доступа к листу рабочей книги
var Sheet:variant;
procedure TOKBottomDlg3.ListBoxlClick(Sender: TObject);
begin
Sheet:=Sheets.item[ListBoxl.Itemlndex+l];
end;
Рис. 11.8. Список листов рабочей книги
Для того чтобы переименовать выбранный рабочий лист, запишем в свойст-
во Name новое значение имени листа, например:
Sheet.Ыате:='ЛистЗ ';
Результат такого преобразования представлен на рис. 11.9.
Мы можем скопировать лист и его содержание с помощью метода Сору
объекта Sheet. Этот метод позволяет копировать лист и вставлять копию
или до или после оригинала — это зависит от значения аргумента метода
Сору. Вот пример использования этого метода в процедурах, разработанных
в среде Delphi.
Копирование листа рабочей книги и вставка его копии до и после оригинала
procedure TOKBottomDlg3.Button5Click(Sender: TObject);
begin
Sheet.Copy(before:=Sheet);
end;
procedure TOKBottomDlg3.Button4Click(Sender: TObject);
begin
Sheet.Copy(after:=Sheet);
end;
Рис. 11.9. Переименование листа рабочей книги
Результат выполнения этих процедур может быть таким, как показано на
рис. 11.10, при этом копируется не только содержание листа, но и все его
настройки.
После работы с книгой может понадобиться удалить некоторые листы. Для
этого предназначен метод Delete объекта Sheet. Если попытаться с его по-
мощью удалить выбранный лист, то приложение выведет на экран сообще-
ние (рис. 11.11).
Блокировать данное сообщение и другие сообщения приложения позволяет
следующий оператор:
Е.DisplayAlerts:=False;
Следующая процедура удаляет лист, подавив предупреждающие сообщения
приложения.
Рис. 11.10. Создание копии листа рабочей книги
Рис. 11.11. Окно подтверждения удаления листа
Удаление листа рабочей книги
procedure TOKBottomDlg3.Button2Click(Sender: TObject);
begin
E.DisplayAlerts:=False;
Sheet.Delete;
E. DisplayAlerts:=True;
end;
После того как мы открыли рабочую книгу и выбрали необходимый лист,
можно перейти к чтению или записи информации. |