Как создать excel файл php

Работа с Excel средствами PHP

PHPExcel — библиотека для создания и чтения данных из файлов формата OpenXML (который используется в MS Excel 2007). С ее помощью можно считывать из файлов, записывать в файлы, форматировать содержимое, работать с формулами и т.д. Для работы PHPExcel требуется версия PHP 5.2 или выше, с установленными библиотеками Zip, XML и GD2.

Установка PHPExcel

Первым делом библиотеку необходимо скачать. Для этого переходим на официальный сайт библиотеки и скачиваем архив PHPExcel-1.7.8.zip. После распаковки мы получим несколько файлов и папок:

Файлы — это различные описания по предыдущим версиям, лицензионное соглашение и очень краткая инструкция по установке. Далее, в папке Classes, содержится непосредственно сама библиотека PHPExcel — эту папку необходимо скопировать в корень нашего скрипта.

В папке Documentation содержится документация по библиотеке на английском языке. В папке Tests — примеры по использованию библиотеки.

Создание Excel-файла

Итак, давайте создадим файл makeexcel.php и начинаем работать с ним. Для начала нам необходимо подключить главный файл библиотеки PHPExcel.php (который находится в папке Classes) и создать объект класса PHPExcel:

Настройки листа книги Excel

Документ Excel состоит из книг, а каждая книга в свою очередь, состоит из листов. Далее лист состоит из набора ячеек, доступ к которым осуществляется по координатам. То есть у нас есть столбцы, которые имеют буквенные имена (А, В, С и т.д) и есть строки, которые пронумерованы. Значит, что бы получить доступ к первой ячейке нужно указать код А1. Точно также мы с помощью библиотеки будем получать доступ к каждой ячейке.

Итак, первым делом необходимо выбрать активный лист, на который мы будем выводить данные и получить объект этого листа:

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

Затем, по аналогии, указываем индекс и получаем объект активного листа.

Далее при помощи метода setTitle(‘Прайс лист’) задаем название нашего листа.

Если нужно, можно при печати выводить шапку и подвал листа:

Обратите внимание на передаваемые параметры:

Затем указываем настройки шрифта по умолчанию:

Наполнение документа данными

Для начала давайте зададим ширину столбцов (в символьных единицах), которые нам понадобятся:

Теперь заполним несколько ячеек текстом:

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Далее давайте в ячейку D4 запишем текущую дату:

Стилизация данных

Теперь, по аналогии, применим стили к остальным ячейкам:

Сохранение документа

Осталось только сохранить наш документ:

Если нужно вывести документ в браузер

Первый заголовок указывает браузеру тип открываемого контента — это документ формата Excel. Второй — говорит браузеру, что документ необходимо отдать пользователю на скачивание под именем simple.xlsx.

Добавление формул

Формула Excel — это математическое выражение, которое создается для вычисления результата и которое может зависеть от содержимого других ячеек. Формула в ячейке Excel может содержать данные, ссылки на другие ячейки, а также обозначение действий, которые необходимо выполнить.

Использование ссылок на ячейки позволяет пересчитывать результат по формулам, когда происходят изменения содержимого ячеек, включенных в формулы. Формулы Excel начинаются со знака =. Скобки ( ) могут использоваться для определения порядка математических операции.

PHPExcel тоже поддерживает добавление формул в ячейки. Установить формулу можно так:

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Чтение Excel-файла

Самый простой вариант — считать все таблицы (на всех листах) и записать данные в трехмерный массив:

Источник

Генерация XLS на PHP

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Очень часто необходимо делать экспорт каких-то данных, например, из базы данных в Excel-файл. Например, какой-нибудь прайс-лист преобразовать в удобный формат из базы данных и сгенерировать XLS-файл, который смогут без проблем скачать посетители. И вот как генерировать XLS на PHP, я расскажу в этой статье.

Нам потребуется с Вами отдельная библиотека, которая позволяет работать с Excel-файлами. Называется она PHPExcel, и скачать её можно здесь: http://phpexcel.codeplex.com.

Давайте её применим для генерация Excel-файла через PHP-скрипт:

setActiveSheetIndex(0); // Делаем активной первую страницу и получаем её
$page->setCellValue(«A1», «Hello»); // Добавляем в ячейку A1 слово «Hello»
$page->setCellValue(«A2», «World!»); // Добавляем в ячейку A2 слово «World!»
$page->setCellValue(«B1», «MyRusakov.ru»); // Добавляем в ячейку B1 слово «MyRusakov.ru»
$page->setTitle(«Test»); // Ставим заголовок «Test» на странице
/* Начинаем готовиться к записи информации в xlsx-файл */
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, ‘Excel2007’);
/* Записываем в файл */
$objWriter->save(«test.xlsx»);
?>

После выполнения скрипта у Вас рядом с PHP-файлом появится XLSX-файл, который Вы легко сможете открыть в Excel 2007 или более поздней версии.

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

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 12 ):

А можно с помощью этой библиотеки дополнить уже существующий XLS файл?

Спасибо. Но есть вопрос. Как скажем организовать, чтобы файл не записывался, а выдавался на скачивание? Понимаю, что вопрос странный, но опыта в php мало.

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

По поводу подключения к joomla. Похоже сперва надо сделать изменения, указанные в данной ссылке: http://klevismiho.com/phpexcel-and-joomla/ После этого работает стабильно.

У Вас опечатка // Добавляем в ячейку A2 слово «World1» Заместо знака восклицания, у Вас стоит «1»

Добрый вечер, скажите, а куда класть данную библиотеку? а то пример копирую, он не работает

выполняю скрипт,но файл не появляется

Михаил, а можно более подробно изложить использование данной библиотеки для простого примера: на страницу выводится html-таблица и значок(типа «сгенерировать таблицу») в углу. И только после клика по этому значку генерируется excel-файл с сохранением всех стилей (ну или большей их части по возможности). на сайте разработчика не понятно описано все. заранее спасибо!

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Формирование Excel-документов средствами PHP

Возможность создания Excel-документов в общих чертах уже была описана на Хабре, но полной информации из этих статей мне получить не удалось. Пришлось заняться собственными изысканиями, результатами которых я хотел бы с Вами поделиться. Данная статья будет полезна и новичкам, и профессионалам, столкнувшимся с проблемой динамического формирования Excel-документов.
Это всего лишь первая часть серии статей, которыми хотелось бы поделиться с общественностью. В последующих статьях будут более подробно рассмотрены некоторые способы и нюансы выгрузки xls-файлов.

Введение

Не хочу распространяться на тему того, зачем необходима выгрузка в Excel. Мне кажется, что это вполне очевидно: в формате MS Excel достаточно удобно предоставлять пользователю загружаемые данные. Это могут быть прайс-листы, каталоги или любая подобная служебная, статистическая и иного рода информация.
Сразу хочу оговориться, что в статье рассматривается работа с документами через COM-объекты. Данный метод таботает только на Windows-платформах. Другими словами, если Вы предпочитаете *nix-хостинг, этот метод Вам не подходит.

Синтаксис

Создание COM-объекта осуществляется следующим образом:
$my_com_object = new COM($object_class);
, где
$my_com_object — новый COM-объект;
$object_class — id-класс требуемого объекта.

После создания нового COM-объекта, можно обращаться к его свойствам и методам:
Application->Visible = 1; // Делаем объект видимым
$xls->Workbooks->Add(); // Добавляем новую книгу (создаём документ)

$range=$xls->Range(«A1:J10»); // Указываем область ячеек
$range->Select(); // Выделяем эту область
$fontRange=$xls->Selection(); // Присваиваем переменной выделенную область

// Отформатируем текст в выделенной области
$fontRange->Font->Bold = true; // Жирный
$fontRange->Font->Italic = true; // Курсив
$fontRange->Font->Underline = true; // Подчеркнутый
$fontRange->Font->Name = «Arial»; // Тип шрифта
$fontRange->Font->Size = 14; // Размер шрифта
?>

Открытие, запись, закрытие документа
Общие возможности
Создание нового документа
Открытие ранее созданного документа

Открытие документа можно сделать при помощи метода Open() объекта Workbooks().
В передаваемом методу Open() параметре нужно указать имя открываемого файла:
Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Open(«C:\my_doc.xls»); // Открываем ранее сохраненный документ
?>
Внимание! Если указать не полный, а относительный путь, то поиск открываемого файла будет происходить не на сервере, а на компьютере пользователя. По умолчанию это папка «Мои документы».

Сохранение открытого документа

Сохранение открытого документа производится при помощи метода SaveAs() объекта Workbooks():
Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Add();
$range=$xls->Range(«A1»); // Выбираем ячейку A1
$range->Value = «Проба записи»; // Вставляем значение

// Сохраняем документ
$xls->Workbooks[1]->SaveAs(«my_doc.xls»);

$xls->Quit(); //Закрываем приложение
$xls->Release(); //Высвобождаем объекты
$xls = Null;
$range = Null;
?>
Хочу отдельно отметить, что высвобождение объектов — это очень хорошо и правильно. Да сгорят в священном очищающем пламени костров Инквизиции те, кто считает иначе.

Закрытие документа

Закрытие документа производится методом Quit().
Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Add();
$range=$xls->Range(«A1»); // Выбираем ячейку A1
$range->Value = «Что-то записываем»; // Вставляем значение в ячейку

// Сохраняем документ
$xls->Workbooks[1]->SaveAs(«my_doc.xls»);

$xls->Quit(); // Закрываем приложение
$xls->Release(); // Высвобождаем объекты
$xls = Null;
$range = Null;
?>

Источник

Как создать xls/xlsx средствами php?

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

svetlov97, header.php из примеров? Он там для примера, внезапно. У вас вместо него может быть что-то совсем другое.

Bootstrap.php пытается подключить автозагрузчик, и выдает ошибку, если не получилось.
О автозагрузке читайте PSR-4

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

svetlov97, можно, но придется все необходимые классы загрузить вручную.
(автозагрузчиком проще).

Вы же умеете делать require? Автозагрузчик делает ровно то-же самое.
Если при вызове какого-то класса оказывается, что соответствующий файл не подключен, автозагрузчик делает ему require. И все.

Из-за того, что вам лень прочесть PSR-4 вы уже несколько дней страдаете на ровном месте.

А композер немножко сложнее, конечно. Он еще умеет сам скачивать нужные классы из интернета, следить не вышла ли новая версия, и всякое такое. Но тоже не rocket science, и его стоит освоить.

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Источник

Создание exсel файлов на php с помощью PhpSpreadsheet

Как создать excel файл php. Смотреть фото Как создать excel файл php. Смотреть картинку Как создать excel файл php. Картинка про Как создать excel файл php. Фото Как создать excel файл php

Установка PhpSpreadsheet и требования

Прежде чем начать установку убедитесь, что у вас установлен composer (более подробно про установку composer можно прочесть здесь), а также установлена версия PHP не ниже 7.1. Затем для установки библиотеки выполняем следующую команду:

composer require phpoffice/phpspreadsheet

После того, как composer установит библиотеку и все ее зависимости можно приступать к формированию excel файлов.

Работа с библиотекой, запись данных и создание xlsx файлов

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

Самый простой пример создания файла может выглядеть следующим образом:

Чтобы создать файл с расширением xls, а не xlsx, достаточно заменить класс Xlsx на Xls и изменить расширение в названии создаваемого файла.

Если при открытии файла с расширением xls возникают ошибки, необходимо проверить в настройках PHP параметр mbstring.func_overload. Для корректной работы библиотеки с расширением файлов xls необходимо, чтобы он был установлен в mbstring.func_overload = 0.

Установка стилей ячеек

Для установки стилей ячеек проще всего использовать метод applyFromArray, который принимает массив параметров. С его помощью можно задать шрифт, цвет текста, границы, выравнивание текста и другие параметры:

Исключение обработано просто для демонстрации в случае, если не удастся создать файл.

Установка размеров и объединение ячеек

Высота и ширина устанавливается на строку и столбец соответственно. Для установки высоты используется метод setRowHeight, а для установки ширины метод setWidth. Чтобы объединить несколько ячеек необходимо использовать метод mergeCells:

Как видно из примера для установки высоты и ширины предварительно необходимо вызвать вспомогательные методы getColumnDimension и getRowDimension.

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

Для добавления картинок используется класс Drawing:

Помимо тех возможностей, что используются в примере, также можно задавать тени у картинок, вращать их и т.д. Более подробно можно обратиться к примерам библиотеки. Также стоит отметить, что путь до файла с картинкой необходимо задавать относительно сервера на котором запускается скрипт создания ваших таблиц. Указать путь в виде ссылки на сторонний ресурс не удастся (на сколько мне известно), для этого сначала необходимо скачать данную картинку на ваш сервер и только потом указывать путь до картинки относительно текущего сервера.

Арифметические операции

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

Узнать более подробно о всех возможных операциях можно из примеров библиотеки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *