Из PHP в OpenOffice.Calc: работа с COM-объектами : Работа с данными в ячейках

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

Версия от 08:02, 7 ноября 2007; Evgen (Talk | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


[править] Запись значения в ячейку

Для записи данных в ячейку существует три метода для объекта Cell, в зависимости от вносимых данных.

setString
- запись текстовых данных;
setValue
- запись числовых данных;
setFormula
- запись формулы;

<?php
$varArr 
= array();
$oo = new COM("com.sun.star.ServiceManager");  // Создаем новый COM-объект сервис манеджер
$desk $oo->CreateInstance("com.sun.star.frame.Desktop");  // Создаем новый  фрэйм для загрузки документа
$oodoc $desk->LoadComponentFromURL('private:factory/scalc','_blank',0,$varArr); // запуск приложения

$Sheets $oodoc->getSheets();

//вносим данные
$Cell=$Sheet->getCellByPosition(0,0);          //получаем ссылку на ячейку
$Cell->SetString("Множитель");                 //вносим текст
$Cell=$Sheet->getCellByPosition(1,0);
$Cell->SetString("Множитель");
$Cell=$Sheet->getCellByPosition(2,0);
$Cell->SetString("Произведение");

$Cell=$Sheet->getCellByPosition(0,1);          //получаем ссылку на ячейку
$Cell->SetValue(78);                           //вносим число
$Cell=$Sheet->getCellByPosition(1,1); 
$Cell->SetValue(11);
$Cell=$Sheet->getCellByPosition(2,1);          //получаем ссылку на ячейку
$Cell->SetFormula("=A2*B2");                   //вносим формулу

//сохраняемся закрываемся
$mysave $oo->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$mysave->Name="FilterName";
$mysave->Value="MS Excel 97";
$varArr[0]=$mysave;

$oodoc->storeAsURL("file://localhost/c:/test.xls",$varArr);

$oodoc->close(true);
$oodoc Null;

$desk->terminate;
$desk Null;
?>

[править] Чтение значений из ячейки

Для чтения данных из ячейки сначало необходимо узнать какой тип данных в ней находится. Для этого можно воспользоваться методом getType. Возвращаемые значения:
0 - пустая ячейка;
1 - число;
2 - текст;
3 - формула.

В зависимости от полученного результата используются методы getString, getValue, getFormula.

$Cell=$Shhet->getCellByPosition(1,1);
$type=$Cell->getType;

switch ($a) {
  case 1:    $value_=$Cell->getValue;
             break;
  case 2:    $value_=$Cell->getString;
             break;
  case 3:    $value_=$Cell->getFormula;
             break;
  default:   $value_='';
  }
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
Личные инструменты
смотрим также
    смотрим также