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

смотрим также

Материал из Справочник Web-языков

Версия от 15:35, 26 апреля 2011; Evgen (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Содержание

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

В 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;
?>
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования