Использование технологии автоматизации для работы с пакетом Microsoft Office, страница 6

Variant XL, WorkBook, Sheet;

AnsiString result;

XL = CreateOleObject("Excel.Application");

XL.OlePropertySet("Visible",true);

WorkBook = XL.OlePropertyGet("WorkBooks").OleFunction("Add");

WorkBook.OlePropertyGet("WorkSheets").OleFunction("Add");

Sheet = WorkBook.OlePropertyGet("WorkSheets",1);

// в ячейку B1 записать формулу

Sheet.OlePropertyGet("Cells",1,2).OlePropertySet("Formula","=Log(1)");

// взять значение из ячейки B1

result = Sheet.OlePropertyGet("Cells",1,2).OlePropertyGet("Value");

ShowMessage("Результат = "+result);

XL.OlePropertySet("DisplayAlerts",false);

XL.OleProcedure("Quit");

XL = Unassigned; // устранить ссылку на объект автоматизации

Для работы с ячейками рабочего листа используется его свойство Cells, представляющее собой матрицу, каждая ячейка которой идентифицируется номером строки и номером столбца. Содержимое ячейки может быть рассматривать как формулу или значение в зависимости от того, какое свойство ячейки используется - Formula или Value.

Свойство DisplayAlerts объекта автоматизации Application предназначено для разрешения (True) или запрета (False) серверу автоматизации Excel выводить предупреждающие сообщения.

Метод Quit объекта автоматизации Application завершает работу сервера автоматизации Excel. После завершения работы сервера автоматизации Excel указатель на его интерфейс должен получить значение Unassigned, чтобы устранить ссылку на объект автоматизации.

Для определения количества открытых рабочих книг и числа листов в рабочей книге предназначено свойство Count, имеющееся у соответствующих объектов автоматизации:

XL.OlePropertyGet("Workbooks").OlePropertyGet("Count") - количество открытых рабочих книг;

XL.OlePropertyGet("Workbooks",i).OlePropertyGet("Sheets").OlePropertyGet("Count") - общее число листов в i-й рабочей книге;

XL.OlePropertyGet("Workbooks",i).OlePropertyGet("WorkSheets").OlePropertyGet("Count") - число рабочих листов в i-й рабочей книге;