Советы по 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; // Скрыть выбранные строки ?>