Slyweb
На разработку сайта! Скидки 50%!

Создание xls(excel) файлов с помощью Spreadsheet_Excel_Writer.

Продолжая обзор возможностей php при работе с excel документами, после того как в предыдущей статье ма завершили рассмотривать чтение файлов excel с помощью пакета pear Spreadsheet_Excel_Reader, следует обратится к одному из оптимальных и бесплатных вариантов создания xls файлов с помощью пакета pear Spreadsheet_Excel_Writer. В отличие от пакета Spreadsheet_Excel_Reader пакет Spreadsheet_Excel_Writer имеет стабильную версию, которую Вы можете получить на сайте pear.php.net. Следует иметь ввиду, что данный пакет рассчитан на excel 5 версии. При изучении методов автор использовал последнюю версию OpenOffice.

Основные возможности Spreadsheet_Excel_Writer:

  • создание excel документов в формате Excel 5 (BIFF5);
  • отправка заголовков браузеру о формате Excel;
  • создание нескольких листов Excel в одном файле xls;
  • создание и заполнение столбцов и строк файла excel;
  • объединение столбцов и строк;
  • изменение цвета шрифтов,выбор и установка различных шрифтов;
  • сохранение xls файлов;
  • установление размера строк и столбцов;
  • и много другое. Смотрите ниже подробно методы пакета.

Для того чтобы вывести простой ecxel файл через браузер необходимо выполнить следующий код:

Помимо методов, используемых только в данном примере, существует дополнительные методы о которых и пойдёт речь далее.

Метод close () закрывает файл exсel, в случае успешного закрытия возвращает true, иначе PEAR_Error

Объект создаёт новый лист в excel файле, возвращает ссылку на объект нового листа и true или PEAR_Error. Название не может превышать 32 знака.

Объект добавляет новый формат к excel файлу. Доступные значения:

Align (void Format::setAlign ( string $location ))

Bold (void Format::setBold ( integer $weight=1 ))

Bottom (void Format::setBottom (integer $style))

Top (void Format::setTop ( integer $style ))

Left (void Format::setLeftColor ( mixed $color ))

Right (void Format::setRight ( integer $style ))

Border (void Format::Border ( integer $style ))

BorderColor (void Format::BorderColor ( mixed $color ))

BottomColor (void Format::BottomColor ( mixed $color ))

TopColor (void Format::TopColor ( mixed $color ))

RightColor (void Format::RightColor ( mixed $color ))

LeftColor (void Format::LeftColor ( mixed $color ))

FgColor (void Format::FgColor ( mixed $color ))

BgColor (void Format::BgColor ( mixed $color ))

Color (void Format::Color ( mixed $color ))

Pattern (void Format::Pattern ( mixed $color ))

Underline (void Format::Underline ( mixed $color ))

TextRotation (void Format::TextRotation ( mixed $color ))

Size (void Format::Size ( mixed $color ))

NumFormat (void Format::NumFormat ( mixed $color ))

Script (void Format::Script ( mixed $color ))

Эти свойства можно устанавливать с помощью массива свойств, например:

Так же свойства можно устанавливать по отдельности, например:

Следующий метод выравнивает данные в ячейке таблицы, допустимыми значениями являются:

Для горизонтального выравнивания (только одно): left, center, right, fill, justify, merge, equal_space.

Для вертикального выравнивания (только одно): top, vcenter, bottom, vjustify, vequal_space.

Метод setVAlign() устанавливает вертикальное выравнивание данных в ячейке таблицы, допустимыми значениями являются: top, vcenter, bottom, vjustify, vequal_space. equal_space.

Метод setHAlign() устанавливает вертикальное выравнивание данных в ячейке таблицы, допустимыми значениями являются: left, center, right, fill, justify, merge, equal_space.

Метод setMerge() аналог свойства setAlign('merge')

Метод setBold выделяет текст в ячейках. Допустимые значения: от 100 до 1000.

Метод setBottom() устанавливает нижнюю границу ячейки.

Метод setTop() устанавливает верхнюю границу ячейки.

Метод setRight() устанавливает правую границу ячейки.

Метод setLeft() устанавливает левую границу ячейки.

Метод setBorder() устанвливает стиль грницы ячейки.

Метод setBorderColor() устанавливает цвет границы ячеек.

Метод setBottomColor() устанавливает цвет нижней границы ячейки.

Метод setTopColor() устанавливает цвет верхней границы ячейки.

Метод setRightColor() устанавливает цвет правой границы ячейки.

Метод setLeftColor() устанавливает цвет левой границы ячейки.

Метод setFgColor() устанавливает цвет фона переднего плана ячейки.

Следующий метод устанавливает цвет фона ячейки.

Метод setColor() устанавливает цвет текста ячейки.

Метод setPattern() устанавливает фон, чтобы более точно понять назначение данного метода используйте его вместе с методами setBgColor и setFgColor.

Метод устанавливает подчеркивание текста в ячейке.

Метод устанавливает стиль Italic для текса в ячейке.

Метод устанавливает размер текста в ячейке.

Метод устанавливает ориентацию текста в ячейке, допустимые значения - 0, 90, 270 и -1.

Метод устанавливает числовой формат.

Допустимы следующие значения:

0 Десятичное число Количество нулей, определяющие количество цифр, которые будут отображены.
0.00 Десятичное число Количество нулей, после точки, определяющие количество десятичных цифр, которые будут отображены.
#.## Количество определенных знаков, после точки, определяющие количество десятичных цифр, которые будут отображены.
0% Количество нулей, определяющие количество цифр, которые будут отображены.
0.000% Количество нулей, после точки, определяющие количество десятичных цифр, которые будут отображены.
$#.#;[Red]($#.#) Валюта Подробно об этом смотрите на pear.php.net
??/?? Дробь Подробно об этом смотрите на pear.php.net
# ??/?? Дробь Подробно об этом смотрите на pear.php.net
0.00E+# Scientific Подробно об этом смотрите на pear.php.net
D-MMM-YY Date Подробно об этом смотрите на pear.php.net
D/M/YYYY h:mm:ss Date/Time Подробно об этом смотрите на pear.php.net
h:mm:ss AM/PM Time Подробно об этом смотрите на pear.php.net

Устанавливает перечеркивание шрифта

Устанавливает оконтуривание шрифта

Устанавливает тип сценария шрифта.

Устанавливает семейство шрифта. Допустимыми значениями могут быть Times New Roman, Arial, Courier.

Все вышеперечисленные методы связанны с шрифтом в ячейке документа excel.

В пакете Spreadsheet_Excel_Writer сущетсвуют ещё несколько свойств для работы с листами excel документа.

Например следующей метод устанавливает, временную папку в которой будет сохранятся OLE файл, на сайте разработчика советует использовать данный метод в тех случаях, когда у Вас не достаточно прав для сохранения файла во временную директорию, используемую по умолчанию.

Так же на сайте pear.php.net содержится пример использования данного свойства.

Следующий метод, позволяет устанавливать RGB цвета в цветовой палитре.

Если Вам необходимо вернуть листы книги как объекты, используйте следующее Метод.

Если Вам необходимо изменить ранее установленное названия листа книги, то используйте следующий метод.

Ранее уже упоминалось о необходимости установления правильной кодировки для excel файла, тем не менее укажем этот метод ещё раз.

Пример "Как установить кодировку в exсel файле?".

Если Вы используете несколько листов в excel файле, то с помощью следующего метода можно выбрать любой лист.

Не следует путать выбор листов в процессе написания кода и выбор активного листа при открытии excel файла, для установки активного листа в последнем случае необходимо использовать следующий метод.

Ещё одним методом, при помощи которого можно выбирать листы, является метод activate(), это Метод пригодится в том случае, если существует множество листов и Вам необходимо выбрать один из них в качестве первого листа. Синтаксис следующий.

Метод protect запрещает модификацию листа. Его синтаксис следующий.

Чтобы изменить ширину ячейки используйте следующий синтаксис. Правда следует отметить, что на официальном сайте не указано в каких единицах измеряется значение.

Метод writeCol позволяет установить массив переменных в качестве содержимого ячейки.

Метод writeRow позволяет установить массив переменных в качестве содержимого ячейки для строки.

Метод setSelection позволяет выделить ячейку или группу ячеек.

Метод setSelection позволяет выделить ячейку или группу ячеек.

Чтобы выделить определенный раздел в листе файла excel, используйте Метод freezePanes().

Чтобы выделить определенный раздел в листе файла excel, используйте Метод thawPanes().

Метод setPortrait () устанавливает ориентацию листа.

Метод setLandscape() устанавливает ориентацию как "ландшафт".

Метод setLandscape() устанавливает тип листа. Ex. 1 = US Letter, 9 = A4.

Метод setHeader() позволяет установить заголовок листа.

Метод setFooter() позволяет уставноить заголовок листа в низу страницы.

Метод centerHorizontally() позволяет отцентрировать страницу по горизонтали.

Метод centerVertically() позволяет отцентрировать страницу по вертикали.

Метод setMargins() устнавливает отступы для страницы.

Метод setMargins_LR() устанавливает правый и левый отступы для страницы.

Метод setMargins_TB() устанавливает верхний и нижний отступы для страницы.

Метод setMarginLeft() устанавливает верхний и нижний отступы для страницы.

Метод setMarginRight() устанавливает верхний и нижний отступы для страницы.

Метод setMarginTop() устанавливает верхний и нижний отступы для страницы.

Метод setMarginBottom() устанавливает верхний и нижний отступы для страницы.

Метод RepeatRows() устанавливает строки, которые будут повторены при печати.

Метод repeatColumns() устанавливает столбцы, которые будут повторены при печати.

Метод printArea() устанавливает область, которая будет напечатана.

Метод hideGridlines() устанавливает градиент, используемый при печати.

Метод printRowColHeaders() позволяет выбрать показывать или нет, при печати, заголовки ячеек и столбцов.

Метод fitToPages() позволяет выбрать показывать или нет, при печати, номера строк, данный метод не работает в OpenOffice.

Метод setHPagebreaks() позволяет установить, при печати файла, отображение разрыва страниц.

Метод setHPagebreaks() позволяет установить, при печати файла, отображение вертикального разрыва страниц.

Метод setZoom() устанавливает zoom для страницы.

Метод setPrintScale() устанавливает масштаб страницы при печати страницы.

Метод write() записывает данные в excel файл.

Пример write():

Следующие свойства схожи с предыдущим по своему назначению,поэтому подробно мы их описывать не будем, за подробностями обращайтесь на http://pear.php.net , ниже приведенные свойства так или иначе записывают данные в excel файл и отличаются лишь форматом.

Метод setRow() используется для установления высоты строки.

Метод mergeCells() используется для объединения ячеек.

Метод minsertBitmap используется для установления изображения в файл excel.

Конструктор Spreadsheet_Excel_Writer создаёт лист в excel файле.

К сожалению пакет содержит недокументированные методы, о значении которых трудно догадаться, но при желании Вы можете их изучить самостоятельно. Среди таких методов находятся:

На этом наша статья о пакете Spreadsheet_Excel_Writer заканчивается, в заключение необходимо отметить, что некоторые примеры указанные на сайте http://pear.php.net работают не в полной мере, а некоторые методы не реализуются полностью, видимо это связано с редким обновлением пакета, поэтому будьте внимательны при написании кода. Успехов Вам.

Скачать архив Spreadsheet_Excel_Writer


Александр Ермаков