Приглашаем посетить
Вересаев (veresaev.lit-info.ru)

Учебник по Советы : Из PHP в Excel: работа с COM-объектами : Открытие, запись, закрытие документа

Из PHP в Excel: работа с COM-объектами : Открытие, запись, закрытие документа

Общие возможности:

В Excel при помощи PHP можно произвести следующие действия с документами:

  • создать новый документ;
  • открыть ранее созданный документ;
  • сохранить открытый документ;
  • закрыть документ.

    Создание нового документа:

    Создание нового документа в Excel происходит в три действия:
    1. - Создаем "связь" между PHP и Excel (создается дескриптор, как при работе с файлами);
    2. - Указываем, будет ли визуально открыта программа или нет;
    3. - Указываем программе через дескриптор, что нужно открыть новый документ.
    Для создания дескриптора ("связи") нужно использовать обращение к Excel через COM-объект:
    $xls = new COM("Excel.Application");
    
    Теперь через дескриптор $xls мы можем обращаться ко всем свойствам и методам Excel.
    Будет ли отображаться Excel или нет, указывается в свойстве Visible() объекта Application().
    Если мы этому свойству присвоим значение 1, то программа будет отображаться, если 0, то нет:
    $xls->Application->Visible = 1;
    
    Ну и, наконец, добавить новый документ можно при помощи метода Add() объекта Workbooks():
    $xls->Workbooks->Add();
    
    Т.е. чтобы просто запустить при помощи PHP Excel нужно выполнить следующий код:
    <?php
    $xls = new COM("Excel.Application"); // Создаем новый COM-объект
    $xls->Application->Visible = 1;      // Заставляем его отобразиться
    $xls->Workbooks->Add();              // Добавляем новый документ
    ?>
    
    Первые две строки этого примера нужно использовать всегда при работе с Excel через PHP.

    Открытие ранее созданного документа:

    Открытие документа можно сделать при помощи метода Open() объекта Workbooks().
    В передаваемом методу Open() параметре нужно указать имя открываемого файла:
    <?php
    $xls = new COM("Excel.Application");  // Создаем новый COM-объект
    $xls->Application->Visible = 1;       // Заставляем его отобразиться
    $xls->Workbooks->Open("C:\test.xls"); // Открываем ранее сохраненный документ
    ?>
    
    Если указать не полный а относительный путь, то поиск открываемого файла будет происходить не на сервере а на компьютере пользователя (по умолчанию это папка "Мои документы").

    Сохранение открытого документа:

    Сохранение открытого документа производится при помощи метода SaveAs() объекта Workbooks():
    <?php
    $xls = new COM("Excel.Application");  // Создаем новый COM-объект
    $xls->Application->Visible = 1;       // Заставляем его отобразиться
    $xls->Workbooks->Add();
    $range=$xls->Range("A1");            // Выбрали ячейку A1
    $range->Value = "Проба записи";      // Вставили значение
    
    // Сохраняем документ
    $xls->Workbooks[1]->SaveAs("test.xls");
    
    $xls->Quit();                        //Закрываем приложение 
    $xls->Release();                     //Высвобождаем объекты
    $xls = Null; 
    $range = Null;
    ?>
    

    Закрытие документа:

    Закрытие документа производится методом Quit().
    <?php
    $xls = new COM("Excel.Application");  // Создаем новый COM-объект
    $xls->Application->Visible = 1;       // Заставляем его отобразиться
    $xls->Workbooks->Add();
    $range=$xls->Range("A1");            // Выбрали ячейку A1
    $range->Value = "Что-то записываем";      // Вставили значение
    
    // Сохраняем документ
    $xls->Workbooks[1]->SaveAs("test.xls");
    
    $xls->Quit();                        //Закрываем приложение 
    $xls->Release();                     //Высвобождаем объекты
    $xls = Null; 
    $range = Null;
    ?>
    

  • Назад Содержание Вперед