Советы по PHP : Из PHP в Excel: работа с COM-объектами : Открытие, запись, закрытие документа
смотрим также
Материал из Справочник Web-языков
Содержание |
Общие возможности
В Excel при помощи PHP можно произвести следующие действия с документами:
- создать новый документ;
- открыть ранее созданный документ;
- сохранить открытый документ;
- закрыть документ.
Создание нового документа
Создание нового документа в Excel происходит в три действия:
- - Создаем "связь" между PHP и Excel (создается дескриптор, как при работе с файлами);
- - Указываем, будет ли визуально открыта программа или нет;
- - Указываем программе через дескриптор, что нужно открыть новый документ.
Для создания дескриптора ("связи") нужно использовать обращение к 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; ?>