Работа с Microsoft Excel

Инициализация нового COM-объекта Microsoft Excel

Для создания COM-объекта Microsoft Excel необходимо в методе CreateObject указать программный идентификатор «Excel.Application»:

Var
    Excel: Variant;
Begin
    Excel := Variant.CreateObject("Excel.Application");

Экземпляр COM-объекта будет создан в памяти компьютера. Для полноценной работы с приложением Excel необходимо в нем создать новую книгу, либо открыть уже существующую, и установить для свойства «Application.Visible» (См. справку по Visual Basic) значение True:

Var
    Excel: Variant;
Begin
    Excel := Variant.CreateObject("Excel.Application");
    //Создание новой книги
    Excel.GetProperty("Workbooks").Invoke("Add"New Variant[0]);
    //либо, открытие существующей книги
    Excel.GetProperty("Workbooks").Invoke("Open""c:\Book1.xlsx");
    //Отображение приложения
    Excel.SetProperty("Visible"True);

После этого окно приложения будет отображено на экране.

Вывод окна приложения на передний план в Windows 7

В операционной системе Windows 7 разработчиками Microsoft был изменен подход к работе с окнами, поэтому код указанный выше приведет к созданию приложения Excel, но приложение не получит фокус. Окно приложения будет расположено на заднем плане, а его ярлык будет доступен только на панели задач. Если необходимо перевести окно на передний план и передать ему фокус, то существует следующий путь обхода: перед отображение окна необходимо минимизировать размеры окно, а затем восстановить их. В Fore для этого можно использовать следующий код:

Enum XlWindowState
    xlMaximized = -4137, xlMinimized = -4140, xlNormal = -4143
End Enum XlWindowState;

Var
    Excel: Variant;
Begin
    Excel := Variant.CreateObject("Excel.Application");
    Excel.GetProperty("Workbooks").Invoke("Add"New Variant[0]);
    Excel.SetProperty("WindowState", XlWindowState.xlMinimized);
    Excel.SetProperty("WindowState", XlWindowState.xlMaximized);
    Excel.SetProperty("Visible"True);

См. также:

Работа с COM-объектами из Fore