Как установить phpexcel ubuntu

Обновлено: 03.07.2024

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

Установка PHPExcel

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

  • Classes
  • Documentation
  • Tests
  • changelog.txt
  • install.txt
  • license.txt

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

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

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

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

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

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

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

С помощью метода setActiveSheetIndex(0) указываем индекс (номер) активного листа. Нумерация листов начинается с нуля. Далее с помощью метода getActiveSheet() получаем объект этого активного листа, то есть другими словами получаем доступ к нему для работы. И сохраняем этот объект в переменную $aSheet .

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

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

Вначале задаем ориентацию листа при помощи метода setOrientation() , которому передаем константу класса PHPExcel_Worksheet_PageSetup :

  • ORIENTATION_PORTRAIT — книжная
  • ORIENTATION_LANDSCAPE — альбомная

Обратите внимание, что перед методом setOrientation() необходимо вызвать метод getPageSetup() , который предоставляет доступ к настройкам страницы.

Далее вызываем метод SetPaperSize() , который позволяет задать размер страницы для печати. Ему передаем параметром константу PAPERSIZE_A4 класса PHPExcel_Worksheet_PageSetup . Что означает, что размер листа страницы будет установлен А4.

Далее устанавливаем поля документа, то есть отступы от краев документа. Отступы задаются в специальных символьных единицах. Вначале, обратите внимание, вызываем у объекта $aSheet метод getPageMargins() , который вернет объект класса, отвечающего за настройки полей страницы. Затем вызываем методы setTop() , setRight() , setLeft() и setBottom() .

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

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

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

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

  • setName('Arial') — задаем имя шрифта;
  • setSize(8) — задаем размер шрифта.

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

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

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

Здесь мы сначала объеденяем ячейки с А1 до E1 при помощи метода mergeCells() , далее задаем высоту строки: вначале получаем доступ к строке 1 при помощи метода getRowDimension('1') , затем задаем высоту — setRowHeight(20) . Далее при помощи метода setCellValue('A1','ТД ТИНКО') , устанавливаем значение ячейки А1.

Создание Excel средствами PHP

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

С помощью констант, определенных в классе PHPExcel_Style_NumberFormat, можно задать формат ячейки: FORMAT_GENERAL (общий), FORMAT_TEXT (текст), FORMAT_NUMBER (число), FORMAT_NUMBER_00 (число с дробной частью), FORMAT_PERCENTAGE (процент), FORMAT_PERCENTAGE_00 (процент с дробной частью) и т.п.

Теперь, используя метод setCellValue() , а также цикл while() наполним данными наш прайс-лист:

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

Давайте немного украсим наш прайс-лист, то есть каждой ячейке добавим стилей. Для этого необходимо создать массив со стилями и при помощи метода applyFromArray() , применить этот массив к ячейке (или ячейкам):

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

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

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

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

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

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

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

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

Примеры формул Excel: =27+36 , =А1+А2-АЗ , =SUM(А1:А5) , =MAX(АЗ:А5) , =(А1+А2)/АЗ .

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

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

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

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

Я пытаюсь установить PHPExcel на свой Ubuntu сервер (Ubuntu 12.04.1 LTS-размещенный Amazon EC2).

Я выполнил следующие команды:

Они, кажется, установили здесь PHPExcel:

Я попытался добавить этот путь включения в /etc/php5/cli/php.ini:

Но модуль, похоже, не установлен? Я перезагрузил сервер, apache2 и т. д..

Я боюсь убить свой webserver, случайно попробовав что-то.

еще немного информации:

Мои установленные модули php: (php-m)

apc bcmath bz2, что календарь Основной ctype для curl дата dba dom с ereg в EXIF фильтр fileinfo ftp gd с текстом hash iconv json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql Фар posix строка чтения Сеанс рефлексии shmop SimpleXML soap розетки SPL стандартный токенизатор sysvmsg sysvsem sysvshm wddx xml объект XmlReader объекта XmlWriter zip zlib

Я в тупике, не знаю, что делать.

Это, вероятно, очень просто для кого-то, кто знает свой путь вокруг php / apache2 и т. д., Но это не я. Я разработчик, только не для этой платформы.

Что мне теперь делать?

2 ответа

У меня возникли проблемы с установкой Passenger на Ubuntu 14.04 LTS для Apache2, и мне было интересно, не мог бы кто-нибудь помочь мне установить Passenger для Apache? Я могу установить Ruby на Rails нормально, но когда я добираюсь до точки, где мне нужно установить/настроить пассажира, это просто.

Я пытаюсь настроить стек LAMP на Ubuntu 14.04 LTS, установив каждый из пакетов отдельно в terminal, а не используя пакеты LAMP software bundle. Ниже приведены команды, которые я выполнил: sudo apt-get install apache2 sudo apt-get install php5 sudo apt-get install mysql-server sudo apt-get install.

Ваш PHP "include_path" должен быть обновлен, чтобы включить каталог PHPExcel Classes/.

В широком смысле PHPExcel-это библиотека (написанная на PHP, загруженная во время выполнения приложениями), а не расширение (написанное на C , сообщенное php -m , загруженное при запуске PHP), поэтому она не будет сообщена php -m и не имеет файла .ini и т. Д.

У меня есть Phabricator, установленный на коробке Linux, и я сделал следующее, чтобы установить PHPExcel в мой Phabricator:

  1. Получите копию PHPExcel, перейдя в https://github.com/PHPOffice/PHPExcel и сделав "git clone https://github.com/PHPOffice/PHPExcel" или перейдя к зеленой кнопке "Клонировать или загрузить" в https://github.com/PHPOffice/PHPExcel и нажмите "Download Zip". Обратите внимание на путь, по которому вы клонировали или разархивировали файл, и убедитесь, что внутри него есть папка "Classes". Для целей этого пошагового руководства я скопировал папку PHPExcel в свою папку Phabricator.
  2. В Linux/OSX shell измените каталог или "cd" на установку Phabricator и введите "найти . -назовите "php.ini", чтобы найти php.ini, связанный с Phabricator. Для моей версии это было в $PHABRICATOR/php/etc/php.ini
  3. Сделайте копию файла php.ini в качестве резервной копии, а затем откройте файл php.ini, найденный на шаге 2, в редакторе
  4. В редакторе найдите оператор "include_path", он должен выглядеть следующим образом .

. и вы должны изменить его на .

  1. Перезагрузите Phabricator, изменив каталог или выполнив "cd" в корневой папке Phabricator, и выполните "./ctlscript.sh перезагрузка"

Это сработало для меня, и, надеюсь, также для вас.

Похожие вопросы:

я пытаюсь установить Apache 2 на мою версию системы Ubuntu 14.04 LTS, установка прошла успешно, но когда я пытаюсь перезапустить Apache, он показывает непризнанную службу, пожалуйста, помогите мне.

Мой apache2 работал должным образом на ubuntu. Но теперь он показывает следующую ошибку, когда я перезапускаю его. Перезапуск веб-сервера apache2 apache2: не удалось достоверно определить полное.

Как установить текущую версию (0.30.1) numba для Python 3 на Ubuntu 16.04 LTS? Моя версия Python - это 3.5.2, и у меня есть установка barebones Ubuntu (серверная версия, я думаю)

У меня возникли проблемы с установкой Passenger на Ubuntu 14.04 LTS для Apache2, и мне было интересно, не мог бы кто-нибудь помочь мне установить Passenger для Apache? Я могу установить Ruby на.

Я пытаюсь настроить стек LAMP на Ubuntu 14.04 LTS, установив каждый из пакетов отдельно в terminal, а не используя пакеты LAMP software bundle. Ниже приведены команды, которые я выполнил: sudo.

Установка : OS Debian 8.6 Jessie Фабрикатор версия : phabricator 62cf4e6b95abbebc8ae2b1591039967651188c6e (СБ, 14 января) арканист ade25facfdf22aed1c1e20fed3e58e60c0be3c2b (ПТ, 6 января) phutil.

Я установил Django (1.11) на виртуальную среду Python (3.6.3), работающую на сервере Ubuntu 16.04 LTS. Мое приложение Django содержит изображения, а сервер Django dev не запустится без установленной.

Я сталкиваюсь с приведенными ниже ошибками при установке apache2 на мой ubuntu 14.04 LTS The following packages have unmet dependencies: apache2 : Depends: apache2-bin (= 2.4.7-1ubuntu4.18) but.

Установка У меня возникают странные проблемы с тест-поваром. Я использую очень простой случай, когда я пытаюсь установить и запустить Apache на 2 платформах. driver: name: vagrant provisioner: name.

Я исунг PHPExcel и у меня есть URL в строке. При выполнении:

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

Но затем, при нажатии на ссылку, он пытается открыть локальную папку.

Есть идеи, как это сделать?

Когда я пытаюсь сделать это без кавычек:

Тогда я получаю ошибку:

Мой настоящий url-это

Я заметил, что при установке косой черты в конце гиперссылка работает, но url тогда неправильно.

4 ответа

Как установить определенный цвет для активной ячейки при создании документа XLS в PHPExcel?

Я нашел решение, каким-то образом url, который у меня был, не был распознан excel.

И теперь это работает. Надеюсь, это поможет.

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

Попробуйте написать свой код, как показано ниже:

$objSheet->setCellValue('A1', '=Hyperlink("https://www.someurl.com/","Mi web")');

Только что потерял час на том же самом вопросе. Наконец (после проверки источника PHPexcel) выяснил, что ->getCell('A1') не требуется и всегда приводит меня к следующей ошибке: Вызов функции-члена getHyperlink() на не-объекте. Вместо этого вы должны передать координаты ячейки непосредственно в getHyperlink('A1') , как это:

Похожие вопросы:

Кто-нибудь знает, как можно установить заполнение ячеек в PHPExcel ? Искал 30 минут и до сих пор не могу найти правильного решения. На этот счет нет никакой полезной документации.

Как динамически установить значение ячейки / столбца с помощью библиотеки PHPExcel? Я извлекаю результирующий набор из базы данных MySQL и хочу записать данные в формате excel, используя библиотеку.

Я использую phpexcel для создания документа excel с PHP. вопрос в том, как сделать автоматическую высоту строки с помощью phpexcel? большое спасибо :)

Как установить определенный цвет для активной ячейки при создании документа XLS в PHPExcel?

Как создать читатель XML из данных URL XML? Я предоставляю действительные данные XML от URL до identify() фабрики PHPExcel , но скрипт выдает ошибку: (!) Фатальная ошибка: Неперехваченное исключение.

Как установить размер шрифта для заголовка в моем reprot в PHPExcel? Я попробовал код ниже, но он не сработал: $objPHPExcel->getActiveSheet()->getHeaderFooter().

Как я могу установить вертикальное выравнивание текста на PHPExcel Я попробовал с $phpExcelObject->getActiveSheet()->getStyle('B2:B5')->getAlignment()->setReadorder(.

Как установить первую строку в phpexcel, я действительно Новичок в этом материале, Когда я экспортирую файл с помощью phpexcel, результат всегда начинается с строки A1 ! как это пропустить. я хочу.

Я хочу установить phpoffice/phpexcel в своем проекте. Когда composer install или composer update , я получаю ошибку: Пакет phpoffice/phpexcel заброшен, вы должны избегать его использования. Вместо.

Читайте также: