Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Работа с листами рабочей книги




 

Лист, ячейки которого непосредственно хранят информацию, является принадлежностью книги. В рабочей книги может быть больше одного листа.

Как получить доступ к списку листов или к любому листу рабочей книги? Ответ: с помощью коллекции Sheets. Как и любая коллекция, она содержит свойство Count:integer (количество элементов коллекции) и набор объектов Item(i:integer) — собственно листы, где i — индекс выбранного листа (от 1 до Count). Некоторые методы коллекции Sheets: Select — выделение всех листов рабочей книги, Сору — копирование всех листов в новую рабочую книгу, PrintPreview — предварительный просмотр печати, Printout — вывод на печать, Add — добавление нового листа в рабочую книгу.

Рассмотрим метод Add подробнее. Его можно использовать как без аргументов, так и с аргументами, определяющими место, куда будут добавлены листы (лист), их количество и тип. Если использовать метод Add так, как показано в следующем примере, то будет добавлен лист перед листом Sheet.

procedure TOKBottomDlg3.ButtonlClick(Sender: TObject);

begin

Sheets.Add(Before:=Sheet);

end;

Добавив листы или просто открыв или создав рабочую книгу, мы можем получить список листов и доступ к любому листу рабочей книги. Для этого используем уже известные свойства коллекции Sheets.

После загрузки списка листов мы можем получить доступ к любому листу для работы с ним. Для начала попробуем изменить непосредственно свойства самого листа, например его имя. Имя листа представляет собой строку и содержится в свойстве Name объекта Sheet. Доступ к листу рабочей книги получим, например, с помощью следующей процедуры.

var Sheet:variant;

procedure TOKBottomDlg3.ListBoxlClick(Sender: TObject);

begin

Sheet:=Sheets. item[List.Boxl. Itemlndex+l];

end;

Для того чтобы переименовать выбранный рабочий лист, запишем в свойство Name новое значение имени листа, например:

Sheet.Name: =’Новый лист’;

Мы можем скопировать лист и его содержание с помощью метода Сору объекта Sheet. Этот метод позволяет копировать лист и вставлять копию или до или после оригинала — это зависит от значения аргумента метода Сору. Вот пример использования этого метода в процедурах, разработанных в среде Delphi.

Sheet.Copy(before:=Sheet);

Sheet.Copy(after:=Sheet);

После работы с книгой может понадобиться удалить некоторые листы. Для этого предназначен метод Delete объекта Sheet.

E.DisplayAlerts:=False; Sheet.Delete; E.DisplayAlerts:=True;

Для доступа к ячейкам можно использовать два разных объекта — объект типа Range, который ассоциируется с областью ячеек, или непосредственно объект Cell (ячейка листа рабочей книги). Если первый объект удобен для работы с целыми областями ячеек, то второй больше подходит для работы с отдельно взятой ячейкой. Эти объекты принадлежат объекту "лист" и требуют задания координат ячейки или области ячеек при обращении к ним. Например, для задания объекта, ассоциированного с областью ячеек A1:D5, используем следующий оператор:

MyRange:=Sheet.Range[Al:D5];

где Sheet — ссылка на лист рабочей книги. После удачного выполнения данного оператора переменная MyRange:variant содержит ссылку на объект, ассоциированный с выбранной областью ячеек. Другой вариант данного оператора:

MyRange:= Е.Sheets.Item(1).Range('Al:D5');

Здесь мы получаем ссылку на область ячеек первого листа рабочей книги.

Обеспечить доступ к отдельной ячейке можно с помощью как объекта Range, так и объекта Cell. Использование последнего в операторе получения доступа к ячейке может выглядеть так:

MyCell:=Sheet.Cells[1,1];

При выполнении данного оператора переменная MyCell будет хранить ссылку на ячейку А1.

Итак, мы получили доступ к ячейкам. Попробуем записать в них информацию из приложения на Delphi.

procedure T0KBottomDlg4.ButtonlClick(Sender: TObject);

var a: integer;

begin

randomize;

for a:=l to 100 do Sheet.Cells(a,1):=random(10000);

end;

В данном примере переменная Sheet содержит ссылку на лист рабочей книги (эта переменная была инициализирована ранее). Полный исходный текст приложения находится на сопроводительном диске книги.

Если для записи в ячейки мы присваивали объекту Cells(row, column) значение, то для чтения данных используем оператор, в котором строковой переменной присваивается значение объекта Cells(row, column). Но ячейки могут иметь разные типы. Например, они могут содержать как целые значения, так и формулы. Для чтения или записи значений используются, например, свойства Value и Text ячейки, для записи формулы — свойство Formula. Переменная, которую отображает ячейка, хранится в свойствах Text и Value объекта Range (Cells), поэтому для того чтобы ее получить, достаточно прочитать значение одного из этих свойств. Если тип данных (формат) значения ячейки неизвестен, используем свойство Text, чтобы получить его в виде строки. Когда тип данных известен, можно попытаться использовать свойство Value. Допустим, нам неизвестен тип данных ячейки. Используем следующую процедуру, которая позволяет прочитать ее значение.

value1.Text:=Range.Text;

Формат ячейки определяется свойством NumberFormat объекта Range. Это свойство имеет строковый тип, а форматы данных представляют собой определенным образом заданные символьные константы. Используя свойство NumberFormat, можно изменить формат любой ячейки или области, а также прочитать значение формата с целью его анализа для внесения изменений.

Определим формат ячейки, которая содержит дату. Для этого воспользуемся представленной ниже процедурой, записанной для приложения Delphi

 

Range:=forml.E.ActiveSheet.Range[addres.Text];

NumberFormat.Text:=Range.NumberFormat;

 

От методов, позволяющих изменять значение ячеек листа рабочей книги Excel, переходим к изучению других свойств и методов основного объекта приложения Excel — ячейки. Начнем с простого — с определения и изменения размеров самой ячейки, связанных с размерами строк и столбцов. Мы определились, что ячейка всегда определяется объектами Range или Cells. Используя свойства ColumnWidth и RowHeight этих объектов, мы имеем возможность изменить ширину и высоту ячейки. Очевидно, что эти изменения повлекут изменения ширины столбца и высоты строки. В качестве примера использования этих свойств рассмотрим процедуры, позволяющие определить и изменить размеры заданной ячейки.

Range.ColumnWidth:=StrToFloat(ColumnWidth.Text);

Важным свойством текста в Excel является шрифт отображаемых значений ячеек и текста других объектов. Для ячеек шрифт является одним из свойств объекта Range, при этом в одной ячейке не может быть, например, два фрагмента текста с разным шрифтом. Шрифт определяется свойством Font ячейки или области ячеек.

 

Свойство Тип Значение
Name String Имя
Background Integer Стиль прорисовки фона (используется только для диаграмм)
FontStyle String Строковое описание стиля
Bold Boolean Полужирный
Italic Integer Курсив
Size Boolean Размер шрифта
Strikethrough Boolean Зачеркнутый
Superscript Boolean Верхний индекс
Subscript Boolean Нижний индекс
OutlineFont Boolean Не используется

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 593; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.