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

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

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

Перейти к: навигация, поиск


Запись значения в ячейку

Для записи данных в ячейку существует три метода для объекта 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>)
другие проекты
Rambler\'s Top100 Индекс цитирования