- •Государственное образовательное учреждение среднего профессионального образования Чайковский техникум промышленных технологий и управления
- •Методические рекомендации по выполнению лабораторной работы Дисциплина «Прикладное программное обеспечение»
- •Учебные
- •Организация взаимодействия с ms Excel
- •Рабочие книги ms Excel
- •Объект Workbook
- •Листы ms Excel
- •Объект Worksheet (ExcelWorksheet)
- •Работа с ячейками
- •Работа с диаграммами ms Excel
- •Упражнение 1. Работа с процессором
- •Упражнение 2. Запись информации
- •Упражнение 3. Выбор шрифта, его цвета и стиля, параметров границы и фона ячеек
- •Упражнение 4. Создание, настройка внешнего вида областей, область построения, заголовка и формирование области данных диаграммы.
- •Варианты задания на оценку «3» Вариант 1
- •Вариант 2
- •Вариант 3
- •Варианты задания на оценку «4» Вариант 4.
- •Вариант 5.
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Варианты задания на оценку «5» Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12
Упражнение 1. Работа с процессором
Для начала создадим библиотеку, файл с расширением MyExcel.pas, и все функции для удобства будем размещать в ней. Определимся с набором необходимых функций. Самыми простыми и необходимыми являются следующие: активизация Excel, создание новой книги, открытие ранее созданной книги, отображение книги (книг) и приложения Excel, запись информации в ячейку, запись книги на диск и выход (закрытие книги и приложения). Для создания объекта Excel.Application используем переменную E типа variant и библиотеку ComObj.
Рассмотрим следующий фрагмент кода:
uses ComObj, Classes;
var E:variant;
Function CreateExcel:boolean;
begin
CreateExcel:=true;
try
E:=CreateOleObject('Excel.Application');
except
CreateExcel:=false;
end;
end;
End;
Доступ к объекту Excel.Application в нашей функции CreateExcel получаем, используя процедуру CreateOleObject ('Excel.Application') стандартной библиотеки ComObj. Если редактор Excel не установлен в системе, то будет сгенерирована ошибка, и мы получим значение функции = false; если Excel установлен и объект будет создан, то получим значение функции = true. Эта функция создает объект E, свойства и методы которого мы будем использовать в дальнейшем. Если выполнить нашу функцию CreateExcel, то Excel будет запущен, но не будет отображен, потому что по умолчанию он запускается в фоновом режиме. Чтобы его активизировать (сделать видимым) или деактивировать (сделать невидимым), используем свойство visible объекта E. Оформим это в виде функции VisibleExcel. Скобки try except везде используются для обработки исключительных ситуаций.
Function VisibleExcel(visible:boolean): boolean;
begin
VisibleExcel:=true;
try
E.visible:=visible;
except
VisibleExcel:=false;
end;
End;
Используя эту функцию, мы можем показывать или скрывать Excel с документами.
Следующим шагом будет создание рабочей книги. Для этого используем метод Add, коллекции Workbooks объекта E.
Function AddWorkBook:boolean;
begin
AddWorkBook:=true;
try
E.Workbooks.Add;
except
AddWorkBook:=false;
end;
End;
Чтобы открыть ранее созданную рабочую книгу, используем ту же коллекцию Workbooks объекта E и метод Open. Смотрите нижеописанный оператор, с помощью которого мы открываем рабочую книгу и получаем на нее ссылку: book_:= Workbooks. Open(file_). Функция OpenWorkBook открывает книгу и возвращает True в случае успешного выполнения.
Function OpenWorkBook(file_: string):boolean;
begin
OpenWorkBook:=true;
try
E.Workbooks.Open(file_);
except
OpenWorkBook:=false;
end;
End;
Работая с книгой, мы должны иметь возможность добавлять или удалять в ней листы и присваивать им имена. Для работы с листами книги используется коллекция Sheets. Добавить новый лист можно, используя метод Add этой коллекции. Функция AddSheet реализует эту возможность и присваивает новому листу выбранное пользователем имя.
Function AddSheet(newsheet:string):boolean;
begin
AddSheet:=true;
try
E.Sheets.Add;
E.ActiveSheet.Name:=newsheet;
except
AddSheet:=false;
end;
End;
Создавая новые листы, мы должны иметь возможность и удалять их. Метод Delete, коллекции Sheets дает такую возможность. При удалении возможно появление диалогового окна Excel, которое потребует подтверждения операции. Чтобы отключить диалоговое окно Excel, необходимо использовать оператор E.DisplayAlerts:=False.
Function DeleteSheet(sheet:variant):boolean;
begin
DeleteSheet:=true;
try
E.DisplayAlerts:=False;
E.Sheets[sheet].Delete;
E.DisplayAlerts:=True;
except
DeleteSheet:=false;
end;
End;
Обычно книга Excel содержит более одного листа. Их количество содержится в свойстве Count коллекции Sheets.
Получаем количество листов книги
Function CountSheets:integer;
begin
try
CountSheets:=E.ActiveWorkbook.Sheets.Count;
except
CountSheets:=-1;
end;
End;
Записываем листы книги в value
Function GetSheets(value:TStrings):boolean; //
var a_:integer;
begin
GetSheets:=true;
value.Clear;
try
for a_:=1 to E.ActiveWorkbook.Sheets.Count do
value.Add(E.ActiveWorkbook.Sheets.Item[a_].Name);
except
GetSheets:=false;
value.Clear;
end;
End;
Выбираем лист
Function SelectSheet (sheet:variant):boolean;
begin
SelectSheet:=true;
try
E.ActiveWorkbook.Sheets.Item[sheet].Select;
except
SelectSheet:=false;
end;
End;
После внесения изменений необходимо сохранить рабочую книгу. Для этого используем метод SaveAs коллекции Workbooks или объекта ActiveWorkbook. Функция SaveWorkBookAs реализует эту возможность на Delphi. Используем E.DisplayAlerts:=False(True) для отключения (включения) диалогового окна подтверждения записи.
Function SaveWorkBookAs(file_:string): boolean;
begin
SaveWorkBookAs:=true;
try
E.DisplayAlerts:=False;
E.ActiveWorkbook.SaveAs(file_);
E.DisplayAlerts:=True;
except
SaveWorkBookAs:=false;
end;
End;
Одновременно может быть открыто несколько книг, в которые вносится или из которых получается информация. Их количество содержится в свойстве Count коллекции WorkBooks.
Для закрытия книги используется метод Close коллекции Workbooks или объекта ActiveWorkbook. Функция CloseWorkBook закрывает активный документ.
Function CloseWorkBook:boolean;
begin
CloseWorkBook:=true;
try
E.ActiveWorkbook.Close;
except
CloseWorkBook:=false;
end;
End;
Excel закрывается методом Quit объекта Application.
Function CloseExcel:boolean;
begin
CloseExcel:=true;
try
E.Quit;
except
CloseExcel:=false;
end;
End;
После того, как создан минимальный набор функций, можно переходить к демонстрации возможностей программирования Excel. Для этого создадим форму и разместим на ней кнопки, прописываем обработчик нажатия кнопки:
«Открыть приложение»:
begin
if not CreateExcel then exit;
messagebox(handle,'','Запускаем Excel.',0);
VisibleExcel(true);
«открыть книгу»:
OpenWorkBook(Edit1.text);
«создать книгу»:
AddWorkBook
«добавить лист»:
AddSheet('Новый лист');
«удалить лист»:
DeleteSheet(Edit3.text);
«выбрать лист»:
for a_:=1 to CountSheets do begin
ListBox1.ItemIndex:=a_-1;
SelectSheet(ListBox1. Items.Strings[a_-1]);
«сохранить книгу»:
SaveWorkBookAs('c:\1.xls');
«закрыть книгу»:
CloseWorkBook;
«закрыть приложение»:
CloseExcel;
