Из PHP в OpenOffice.Calc: работа с COM-объектами : Формат ячеек: Выравнивание
смотрим также
Материал из Справочник Web-языков
В Openoffice.Calc можно устанавливать выравнивание по горизонтали и вертикали, задавать угол поворота текста, устанавливать перенос слов в ячейке.
Содержание |
Выравнивание по горизонтали
За выравнивание по горизонтали отвечает свойство HoriJustify. Значения этого свойства являются перечислением com.sun.star.table.CellHoriJustify. Например: com.sun.star.table.CellHoriJustify.RIGTH. Однако работать с перечислением не очень удобно, поэтому можно перечисление заменить числовым эквивалентом.
- HoriJustify=0
- - выравнивание по умолчанию;
- HoriJustify=1
- - выравнивание по левому краю;
- HoriJustify=2
- - выравнивание по центру;
- HoriJustify=3
- - выравнивание по правому краю;
- HoriJustify=4
- - выравнивание по ширине;
- HoriJustify=5
- - выравнивание с заполнением;
Выбрать конкретную ячейку можно при помощи метода getCellByPosition(). В приведенном примере значение в ячейке 1:2 будет выровнено по центру:
<?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(); //получаем ссылку на листы $Sheet=$Sheets->getByName("Лист1"); //получаем ссылку на лист $Cell=$Sheet->getCellByPosition(1,2); //получаем ссылку на ячейку $Cell->HoriJustify=2; //выравниваем по центру по горизонтали $Cell->SetString("100"); //заносим данные в ячейку
Свойства связанные с форматирование ячеек применять к каждой ячейке довольно утомительно. Можно указать сразу диапазон ячеек при помощи метода getCellRangeByName().
<?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(); //получаем ссылку на листы $Sheet=$Sheets->getByName("Лист1"); //получаем ссылку на лист $CellRange=$Sheet->getCellRangeByName("A2:C10"); //получаем ссылку на диапазон ячеек $CellRange->HoriJustify=2; //выравниваем по центру по горизонтали
Выравнивание по вертикали
За выравнивание по вертикали отвечает свойство VertJustify. Значения этого свойства являются перечислением com.sun.star.table.CellVertJustify. Например: com.sun.star.table.CellVertJustify.Top. Однако работать с перечислением не очень удобно, поэтому можно перечисление заменить числовым эквивалентом.
- VertJustify=0
- - выравнивание по умолчанию
- VertJustify=1
- - выравнивание по верхнему краю
- VertJustify=2
- - выравнивание по центру
- VertJustify=3
- - выравнивание по нижнему краю
$Cell->VertJustify=2; //выравниваем по центру по вертикали
Угол поворота текста
За поворот текста в ячейке отвечает свойство RotateAngle. Единица измерения сотые доли градуса. Чтобы повернуть текст на 15 градусов необходимо указать значение 1500.
$Cell->RotateAngle=6000; //поворот текста на 60 градусов
Перенос слов
Перенос текста в ячейке регулирует свойство isTextWrapped. Значения может быть два TRUE - переносить и FALSE - не переносить текст в ячейке.
$Cell->isTextWrapped=TRUE; //разрешаем перенос текста
Ориентация текста
Помимо свойства RotateAngle за поворот текста (или направление) текста отвечает свойство Orientation. Значения этого свойства являются перечислением com.sun.star.table.CellOrientation. Например: com.sun.star.table.CellOrientation.Stacked. Однако работать с перечислением не очень удобно, поэтому можно перечисление заменить числовым эквивалентом.
- Orientation=0
- -ориентация по умолчанию
- Orientation=1
- -ориентация соответствует повороту текста на 270 градусов.
- Orientation=2
- -ориентация соответствует повороту текста на 90 градусов
- Orientation=3
- -ориентация текста с накоплением по вертикали
$Cell->Orientation=3; //делаем положение текста вертикальным с накоплением