Советы по PHP : Из PHP в Excel: работа с COM-объектами : Работа со строками

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

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

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


Содержание

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

В Excel при помощи PHP можно произвести следующие действия со строками:

  • добавить строку;
  • удалить строку;
  • задать высоту одной строки или группы строк;
  • сделать автоподбор высоты одной строки или группы строк;
  • скрыть строку или группу строк;
  • отобразить ранее скрытую строку или группу строк.

Добавление строки

Добавить строку можно при помощи метода Insert() объекта EntireRow():

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

// Вставляем в 1-ую, 2-ую и 3-ю верхние ячейки значения
$range=$xls->Range("A1");            // Выбрали ячейку A1
$range->Value = "1-ая строка";       // Вставили значение
$range=$xls->Range("A2");            // Выбрали ячейку A2
$range->Value = "2-ая строка;       // Вставили значение
$range=$xls->Range("A3");            // Выбрали ячейку A3
$range->Value = "3-ая строка";       // Вставили значение

// Вставляем строку
$range=$xls->Range("2:2");           // Определяем место
$range->EntireRow->Insert();         // Вставляем строку
?>

Удаление строки

Удаление строки производится при помощи метода Delete() объекта EntireRow():

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

// Вставляем в 1-ую, 2-ую и 3-ю верхние ячейки значения
$range=$xls->Range("A1");            // Выбрали ячейку A1
$range->Value = "1-ая строка";       // Вставили значение
$range=$xls->Range("A2");            // Выбрали ячейку A2
$range->Value = "2-ая строка";       // Вставили значение
$range=$xls->Range("A3");            // Выбрали ячейку A3
$range->Value = "3-ая строка";       // Вставили значение

// Удаляем строку
$range=$xls->Range("2:2");           // Определяем строку
$range->EntireRow->Delete();         // Удаляем ее
?>

Задание высоты строки

Задать высоту строки можно при помощи свойства RowHeight. Высота задается в миллиметрах.

В следующем примере для строки "2:2" задается высота 25 мм:

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

// Изменение высоты строки
$range=$xls->Range("2:2");           // Выбираем 2-ю строку
$range->Select();                    // Выделяем ее
$rowRange=$xls->Selection;           // Определяем $rowRange как выделенный фрагмент
$rowRange->RowHeight = 25;           // Устанавливаем высоту строки
?>

По аналогии можно задать высоту для нескольких строк:

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

// Изменение высоты строки
$range=$xls->Range("2:7");           // Выбираем строки со 2-ой по 7-ю
$range->Select();                    // Выделяем их
$rowRange=$xls->Selection;           // Определяем $rowRange как выделенный фрагмент
$rowRange->RowHeight = 25;           // Устанавливаем высоту строк
?>

Автоподбор высоты строк

Автоподбор высоты строк используется для лучшей читабельности отображенных данных. Т.е. если размер шрифта текста, размещенного в строках, намного меньше высоты строки, или намного больше высоты, то такой текст читать не очень приятно.

Для автоподбора используется метод AutoFit() объекта Rows:

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

$range=$xls->Range("B1");            // Задаем 1-ую ячейку
$range->Font->Size = 20;             // Задаем размер шрифта
// Выводим в 1-ую выбранную ячейку значение
$range->Value = "Справочник Web-языков: www.spravkaweb.ru";

$range=$xls->Range("B2");            // Задаем 2-ую ячейку
$range->Font->Size = 20;             // Задаем размер шрифта
// Выводим во 2-ую выбранную ячейку значение
$range->Value = "Справочник Web-языков: www.spravkaweb.ru";

$range=$xls->Range("1:2");            // Задаем для работы 2 строки
$range->Select();                     // Выделяем эти строки
$rangeRows=$xls->Selection();         // Задаем $rangeRows как выделенный фрагмент
$rangeRows->RowHeight = 15;           // Устанавливаем высоту строки = 15 мм

$rowRange=$xls->Range("2:2");         // Выделяем 2-ю строку

$rowRange->Rows->AutoFit();           // Делаем автоподбор высоты
                                      // для третьей строки
?>

Т.е. у нас получилось следующее:

На первую и вторую строку мы записали текст Справочник Web-языков: www.spravkaweb.ru. Шрифт для текста задали 20. Затем установили высоту строк 15, и для второй строки сделали автоподбор высоты. В итоге первая строка отображается некорректно (верхняя часть букв не видна), а вторая нормально.

Скрытие/отображение строк

За визуальное отображение строк отвечает свойство Hidden() объекта EntireRow().

Если присвоить этому свойству значение True, то выбранные строки будут скрыты, если False, то показаны.

Следующий пример скроет строки с 5-ой по 10-ую:

<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1;      // Заставляем его отобразиться
$xls->Workbooks->Add();              // Добавляем новый документ

$range=$xls->Range("5:10");          // Выбираем строки с 5-ой по 10-ую

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