Создание Excel-файлов с помощью PHPExcel
Коммерция, а в особенности торговля никогда не обходится без отчетности. Отчеты нужны для эффективного анализа текущего положения дел в бизнесе. В таблицы можно вводить различные данные: числа, текст, даты и т.д. Excel позволяет не просто выстраивать таблицы с данными. Он позволяет делать вычисления над данными таблиц. Кроме того, можно сортировать и фильтровать данные. Как только бизнес начал занимать просторы Интернета, сюда начали переносить все решения для ведения бизнеса на персональных компьютерах. Excel не стал исключением. Сегодня я хочу рассказать про очень удобную объектно-ориентированную библиотеку для работы с Excel-файлами, которая имеет название PHPExcel.
Библиотека
Скачать библиотеку можно со странички Downloads официального сайта. Текущая доступная версия имеет номер 1.7.1. На сайте доступно несколько различных архивов для скачивания.
- PHPExcel 1.7.1 – вся библиотека со всей документацией (описанием и API);
- PEAR PHPExcel 1.7.1 – библиотека в пакетах PEAR;
- Documentation – документация (PHPExcel Developer Documentation);
- Calculation function reference – документация по функциям Excel.
Рекомендую скачать всю библиотеку со всей документацией. Размер распакованных данных внушительный (ок. 76 Мб), но большая часть – это документация. Сама библиотека «весит» всего 6 (!) Мб, что по моим меркам тоже кажется достаточно большим. Но с другой стороны, библиотека проводит много преобразований элементов без сторонних компонентов, поэтому размер должен быть не маленьким.
Распространяется PHPExcel под лицензией LGPL, поэтому проблем с лицензией быть не должно (если это кому-то важно
).
Системные требования библиотеки тоже не маленькие:
- PHP 5.2 или выше;
- php_zip – расширение для работы с Zip-архивами;
- php_xml – расширение для работы с XML;
- php_gd2 – расширение для работы с рисунками
- mb_string – расширения для работы с кодировками. Библиотека работает исключительно с UTF-8.
Быстрый старт
После распаковки архива получится папка PHPExcel, в которой находится папка Classes. Именно здесь располагаются файлы библиотеки. Чтобы не было проблем с путями библиотеки при внедрении в различные фреймворки, лучше всего установить путь к классам через set_include_path().
Вот пример создания небольшого Excel-файла.
excel.php
<?php set_include_path(get_include_path() . PATH_SEPARATOR . 'PhpExcel/Classes/'); //подключаем и создаем класс PHPExcel include_once 'PHPExcel.php'; $pExcel = new PHPExcel(); $pExcel->setActiveSheetIndex(0); $aSheet = $pExcel->getActiveSheet(); $aSheet->setTitle('Первый лист'); //устанавливаем данные //номера по порядку $aSheet->setCellValue('A1','№'); $aSheet->setCellValue('A2','1'); $aSheet->setCellValue('A3','2'); $aSheet->setCellValue('A4','3'); $aSheet->setCellValue('A5','4'); //названия сайтов $aSheet->setCellValue('B1','Названия'); $aSheet->setCellValue('B2','http://www.web-junior.net'); $aSheet->setCellValue('B3','http://www.google.com'); $aSheet->setCellValue('B4','http://www.yandex.ru'); $aSheet->setCellValue('B5','http://www.twitter.com'); //мой личный рейтинг $aSheet->setCellValue('C1','Рейтинг'); $aSheet->setCellValue('C2','100'); $aSheet->setCellValue('C3','99'); $aSheet->setCellValue('C4','90'); $aSheet->setCellValue('C5','85'); //устанавливаем ширину $aSheet->getColumnDimension('B')->setWidth(25); //отдаем пользователю в браузер include("PHPExcel/Writer/Excel5.php"); $objWriter = new PHPExcel_Writer_Excel5($pExcel); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="rate.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); ?>
В результате получается вот такой чудо-рейтинг.
Самый правильный рейтинг всех времен и народов
Разъяснения
Теперь по порядку. Класс PHPExcel является ядром библиотеки. Он хранит в себе все листы (Sheet) книги Excel.
Для установки активного листа (тот с которым будем работать), нужно вызвать метод setActiveSheetIndex() и передать ему индекс листа по порядку. Индексация начинается с нуля, поэтому первый лист будет иметь индекс 0, второй – 1, третий – 2 и т.д.
Метод getActiveSheet() вернет активный лист. Это объект класса PHPExcel_Worksheet. Поэтому код
$aSheet = $pExcel->getActiveSheet();
Запишет в переменную $aSheet активный лист.
Класс PHPExcel_Worksheet имеет множество методов для работы с листом, ячейками, строками, столбцами и др.
Для установки значения ячейки нужно вызвать метод setCellValue() активного листа.
setCellValue( [string $pCoordinate = 'A1'], [mixed $pValue = null])
В метод передаются два параметра:
- string $pCoordinate – номер ячейки – нумерация идет также как и в Excel, напр. A1, C5, D8 и т.д.
- mixed $pValue – значение, которое устанавливается в эту ячейку.
Тот столбец, в котором у нас вписаны сайты, получается слишком узким, поэтому нужно установить ширину для столбца B. Столбец мы можем получить с помощью метода getColumnDimension() активного листа ($aSheet)
PHPExcel_Worksheet_ColumnDimension getColumnDimension( [string $pColumn = 'A'])
В качестве параметра передаем ему строку с именем нужного столбца (в нашем случае это B). Метод вернет объект столбца. Столбец представлен классом PHPExcel_Worksheet_ColumnDimension. Сейчас нас интересует только один из его методов. А именно setWidth().
PHPExcel_Worksheet_ColumnDimension setWidth( [double $pValue = -1])
В качестве единственного параметра передаем устанавливаемую ширину столбца.
Ширина (и высота) в Excel может измеряться тремя способами:
- внутренняя ширина в символьных единицах (напр. 8,43. Этот вид чаще всего отображается в Excel);
- полная ширина в пикселях (напр. 64 pixels);
- полная ширина в символьных единицах (напр. 9,140625, -1 указывает на то, что ширина отключена).
Библиотека PHPExcel работает с третьим видом меры, поскольку этот вид хранится во всех версиях Excel.
Теперь нужно сохранить наше творение. Для сохранения доступно несколько классов. Каждый сохранит по-своему, в своем формате. Доступны форматы Excel5, Excel2007, HTML, PDF и др. Эти классы расположены в папке PHPExcel/Writer/ библиотеки. Они имеют название PHPExcel_Writer_*, где вместо * вставляем соответствующий формат.
Сохранение происходит следующим образом: в конструктор «классу-записывателю» передается объект класса PHPExcel, т.е. нашей книги. После чего нужно вызвать метод save(), которому передается имя файла.
void save($pFilename = null)
В этот файл будет записана Excel-книга в соответствующем формате. Если в качестве имени файла передать строку ‘php://output’, то файл не будет сохранен, а будет выведен в браузер.
Украшательства
Теперь рассмотрим пример работы со стилями. Прежде всего со шрифтами.
excel.php
… //настройки для шрифтов $baseFont = array( 'font'=>array( 'name'=>'Arial Cyr', 'size'=>'10', 'bold'=>false ) ); $boldFont = array( 'font'=>array( 'name'=>'Arial Cyr', 'size'=>'10', 'bold'=>true ) ); //и позиционирование $center = array( 'alignment'=>array( 'horizontal'=>PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical'=>PHPExcel_Style_Alignment::VERTICAL_TOP ) ); //установим жирный шрифт для заголовков //и заодно отцентрируем $aSheet->getStyle('A1')->applyFromArray($boldFont) ->applyFromArray($center); $aSheet->getStyle('B1')->applyFromArray($boldFont) ->applyFromArray($center); $aSheet->getStyle('C1')->applyFromArray($boldFont) ->applyFromArray($center); //и основной шрифт для всех остальных for($i=2;$i<6;$i++){ $aSheet->getStyle('A'.$i)->applyFromArray($baseFont); $aSheet->getStyle('B'.$i)->applyFromArray($baseFont); $aSheet->getStyle('C'.$i)->applyFromArray($baseFont); } …
Чудо-рейтинг меняет облик
Для настройки стилей ячейки есть класс PHPExcel_Style. Добраться до него можно из активного листа ($aSheet), вызвав метод getStyle()
PHPExcel_Style getStyle( [string $pCellCoordinate = 'A1'])
В качестве параметра передается строка с именем ячейки, для которой извлекается класс стилей. У класса стилей есть чудесный метод, который позволяет вынести все настройки в массив. Этот метод называется applyFromArray(). В качестве параметра ему передается массив с различными настройками. Для установки различных видов стилевых параметров нужно использовать различные секции в массиве.
- font – используется для настроек шрифтов ячейки;
- alignment – используется для настроек позиционирования;
- color – используется для настроек цвета ячейки;
- fill – используется для задания заливки ячейки
- и другие, подробнее см. документацию.
Формулы
Все Excel-файлы поддерживают формулы, для вычисления значений ячеек. PHPExcel тоже поддерживает добавление формул в ячейки. К сожалению в формулах содержится недостаток библиотеки PHPExcel. Все функции формул на английском языке. Как называются функции можно посмотреть в документации. Установить формулу можно так
excel.php
…. $aSheet->setCellValue('B6','Всего:')->getStyle('B6') ->applyFromArray($boldFont)->applyFromArray($center); //формула для вычисления суммы балов //наших сайтов $formul = '=SUM(C2:C5)'; $aSheet->getCell('C6')->setDataType( PHPExcel_Cell_DataType::TYPE_FORMULA)->setValue($formul); …
Вместе мы набрали много баллов
Второй способ попроще
... $aSheet->setCellValue('B6','Всего:')->getStyle('B6') ->applyFromArray($boldFont)->applyFromArray($center); //формула для вычисления суммы балов //наших сайтов $formul = '=SUM(C2:C5)'; $aSheet->setCellValue('C6',$formul); ...
т.е. через все тот-же setCellValue()
На основе всего вышеизложенного можно уверенно заявить, что библиотека PHPExcel обладает достаточно мощными средствами для создания таблиц Excel и сохранения этих таблиц в различные форматы файлов.
Читайте все статьи цикла:
- Создание Excel-файлов с помощью PHPExcel
- Чтение Excel-файлов с помощью PHPExcel
- Часто задаваемые вопросы по PHPExcel
Популярность: 100%
Интересное из других блогов:
2leep.comИ не забывайте комментировать статью.
Добавляйся в группу во вконтакте, чтобы самым первым узнавать все новости сайта



Автор: kanat, 5 марта 2010 в 05:27
используетЗдравствуйте!
установил PhpExcel, когда с .xls файла данные выгружаю на html страницу на локальном все работает а на сервере отображается какие то символы, иногда при обновлении страницы выводит правильно. как думаете в чем проблема
Зарранее благодарен!!!
Автор: web-junior, 5 марта 2010 в 10:04
используетДобрый день!
Это скорее всего стандартные проблемы с кодировкой.
Попробуйте вручную в браузере установить кодировку UTF-8.
Откройте html-код и посмотрите, какая кодировка установлена в мета-теге. Проверьте, какую кодировку шлет веб-сервер.
Автор: kanat, 5 марта 2010 в 10:27
используетв мета-теге естественно UTF-8 и вручную установил также, и веб сервер шлет UTF-8. в начале вообще не отобразила, потом я заметил что в каталоге extensions (линукс) не было файла zip.so , установил этот пакет а также mbstring.so, потом сразу вроде заработала но гонимыми символами.
на локальном деньвере (там PHP 5.2.6) были та же проблемы но устранены после копирования в каталог C:\WebServers\usr\local\php5\ext файлы php_zip.dll php_mbstring.dll(v5.7.7) и раскоментирования этих строк в php.ini
к стати вот url http://portal.kaztrk.kz/14.php
Автор: Sat-lin, 9 марта 2010 в 11:14
используетСпасибо за статью, но что то у меня не работает! Скачал полный пакет PHPExcel 1.7.1
Использовал ваш первый тестовый код, он выдал:
Fatal error: Uncaught exception ‘Exception’ with message ‘Cloning a Singleton is not allowed!’ in /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/ReferenceHelper.php:560 Stack trace: #0 /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/ReferenceHelper.php(82): PHPExcel_ReferenceHelper->__clone() #1 /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/Worksheet.php(729): PHPExcel_ReferenceHelper::getInstance() #2 /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/Worksheet.php(394): PHPExcel_Worksheet->setTitle(‘Worksheet’) #3 /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel.php(128): PHPExcel_Worksheet->__construct(Object(PHPExcel)) #4 /pub/home/defo/htdocs/temp/123/new/test.php(10): PHPExcel->__construct() #5 {main} thrown in /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/ReferenceHelper.php on line 560
Не подскажете в чем может быть дело?
Автор: web-junior, 9 марта 2010 в 11:26
используетПроверьте ваши настройки php. Особенно обратите внимание на опцию zend.ze1_compatibility_mode. Она должна быть выключена (установлена в off).
Для отключения этой опции в php.ini
zend.ze1_compatibility_mode = Off
или в начале скрипта напишите код
<?php
ini_set('zend.ze1_compatibility_mode', '0');
….
Автор: Sat-lin, 9 марта 2010 в 11:33
используетОгромное спасибо! xls создался, но в нем уже в открытом документе пишет:
Fatal error: Uncaught exception ‘Exception’ with message ‘Can’t create temporary file’ in /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/Shared/OLE/OLE_File.php:98 Stack trace: #0 /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/Writer/Excel5.php(198): PHPExcel_Shared_OLE_PPS_File->init() #1 /pub/home/defo/htdocs/temp/123/new/test.php(42): PHPExcel_Writer_Excel5->save(‘php://output’) #2 {main} thrown in /pub/home/defo/htdocs/temp/123/new/PhpExcel/Classes/PHPExcel/Shared/OLE/OLE_File.php on line 98
Автор: web-junior, 9 марта 2010 в 11:48
используетБиблиотека не может создать временный файл, для сохранения данных перед отправкой в браузер. Скорее всего это происходит потому что папка с временными файлами не имеет прав на запись. По умолчанию временной папкой является текущая папка. Поставьте права на запись для текущей папки и попробуйте снова.
Автор: Стас, 4 апреля 2010 в 19:30
используетЗдравствуйте.
Спасибо за данную библиотеку. Для меня оказалась чрезвычайно полезной. Но в процессе использования столкнулся с проблемой. Хотя скорее всего это не проблема данной библиотеки. Суть в следующем:
Обращение к скрипту который генерирует файл xls осуществляется с страници с формой. Обратите внимание что сайт использует https протокол. (open ssl с открытым ключом). При открытии данного сайта, как и остальных с открытым ключем браузер предупреждает о том что данные могут быть похищены и т.д… Так вот фаерфокс справляется с этим безупречно, так как уведомив однажды о риске использовании данного ресурса, он больше не возвращается к этому вопросу. А вот IExplorer спрашивает об этом каждый раз и как следствие возникает ошибка при сохранении exel файла. Браузер выдает что этот файл невозможно сохранить. Сохранение осуществляется как в примере у вас на сайте
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename=”places.xls”‘);
header(‘Cache-Control: max-age=0′);
$objWriter->save(‘php://output’);
Если не сложно, подскажите как обойти эту ошибку. Может отправив некую информацию в заголовке можна сделать автоподстверждение или что-то в этом роде?
Заранее спасибо за ответ.
Извините за оффтоп.
Автор: web-junior, 14 апреля 2010 в 09:32
используетВрядли существует подобный заголовок. Судя по всему это глюк ИЕ.
Если найдете как исправить, пожалуйста, сообщите и нам об этом.
Автор: Людмила, 14 апреля 2010 в 09:10
используетЗдравствуйте! Хорошая статья. Как раз то, что надо. Однако, не выводит ни одну буковку на русском языке, ничего своего не делала, просто заюзала ваш код. И ничего! Первая строчка вообще не отображается, остальное выводится хорошо! Думаю, ну ладно, попыталась вывести с бд – та же штуковина! Читаю комменты – видимо проблема с кодировкой. Поставила сравнение в бд utf8_general_ci – та же штука. ПОМОГИТЕ! Может я что-то не корректно делаю!
Заранее благодарна!
Автор: web-junior, 14 апреля 2010 в 09:36
используетДобрый день!
Скорее всего у вас проблемы с соединением с базой. Попробуйте выполнить запрос
SET NAMES ‘utf-8′
сразу после установки соединения с базой (подробнее вы можете прочитать в этой статье).
Автор: Людмила, 14 апреля 2010 в 09:43
используетБлагодарю! сейчас буду пробовать!
Автор: Людмила, 14 апреля 2010 в 10:06
используетВ вашей статье “Чтение Excel…” увидела функцию mb_convert_encoding()
Поставила конструкцию:
$aSheet->setCellValue($B, mb_convert_encoding($row['file_name'], ‘utf-8′, ‘windows-1251′));
$aSheet->setCellValue($C, mb_convert_encoding($row['file_opisanie'], ‘utf-8′, ‘windows-1251′));
Выводит с базы хорошо! Спасибо!
))
Автор: Дмитрий, 16 апреля 2010 в 23:20
используетЗдравствуйте!
Когда делаю по приведенной инструкции все отлично получается…но вот пытаюсь проявить инициативу и не получается, а имнно почему-то невыходит вызвать примерочный файл функцией include или require в теле другой странички.Основная проблема с кодировкой. + скрипт запихует в созданный файлик все тело странички в которой вызван, естественно в кракозябрах.БД – utf8, дистрибутив – utf8, однако не так давно я совершил переход на utf8, может в этом проблема?может где-то забыл указать соответствие?
Автор: web-junior, 17 апреля 2010 в 12:38
используетДобрый день!
Я очень огорчен, что у вас не получается проявить инициативу. Но по вашему описанию понять в чем проблема очень сложно. Пожалуйста, приведите кусок кода, в котором происходит ошибка с подробным описанием какие ошибки при этом происходят.
Автор: Дмитрий, 17 апреля 2010 в 23:16
используетВобщем идея была такая: создаем файл для генерации excel таблици, назовем его test.php он генерирует rate.xls(как у вас в примере).Затем выводим test.php методом require, т.е. require ‘test.php’; в теле страници содержащей переменные, необходимые для генерации rate.xls.Эта идея !получилась…ну да ладно
Пришлось пойти другим путем, путем отправки переменных файлу.теперь все отлично получается только одна проблема, подскажите пожалуйста как переносить строки в ячейке?? Пробовал \r , \n , \r\n даже ничего не получается…
Автор: web-junior, 18 апреля 2010 в 09:51
используетПеревод текста в ячейке делается с помощью \n, заключенного в двойные кавычки. Кроме того, нужно в стилях выставить перевод текста для ячейки. В сумме это выглядит так
$aSheet->setCellValue(‘C7′,”Строка1\nСтрока2″);
$aSheet->getStyle(‘C7′)->getAlignment()->setWrapText(true);
Автор: Дмитрий, 18 апреля 2010 в 17:05
используетс переводом отлично получилось, все работает, спасибо!:)Теперь только не могу справиться с изображениями…Вставляю вот этот код
$iDrowing = new PHPExcel_Worksheet_Drawing();
//берем рисунок
$iDrowing->setPath(‘image.jpeg’);
//устанавливаем ячейку
$iDrowing->setCoordinates(‘D3′);
//устанавливаем смещение X и Y
$iDrowing->setOffsetX(50);
$iDrowing->setOffsetY(50);
//ложим на лист
$iDrowing->setWorksheet($objPHPExcel->getActiveSheet());
Точно в таком же виде. Вызываю в браузере генерацию, выводит это :
Fatal error: Call to a member function getActiveSheet() on a non-object in /home/xxx/xxxxxxx/xxxxx/test.php on line 43
в 43-й строке:
$iDrowing->setWorksheet($objPHPExcel->getActiveSheet());
Сам рисунок image.jpeg в корне пристствует.
Автор: web-junior, 18 апреля 2010 в 18:52
используетВместо $objPHPExcel->getActiveSheet() передайте объект с активным листом в метод $iDrowing->setWorksheet()
Автор: Дмитрий, 21 апреля 2010 в 09:29
используетА не подскажите еще как можно определить цвет текста?Всю документацию перерыл так и не осознал…И может тоже знаете, вот я применил рамку для группы ячеек:
$styleArray = array(
‘borders’ => array(
‘outline’ => array(
‘style’ => PHPExcel_Style_Border::BORDER_THICK,
‘color’ => array(‘argb’ => ‘FFFF0000′),
),
),
);
$aSheet->getStyle(‘A1:B3′)->applyFromArray($styleArray);
и по умолчанию ширина рамки слишком велика, примерно 4-5 пикселов…Где можно это изменить?
Автор: web-junior, 21 апреля 2010 в 10:53
используетПодскажу =)
цвет содержится в классе
PHPExcel_Style_Color. У него есть методы getRGB() и getARGB(). В зависимости от того, в какой цветовой модели вам нужен цвет, можете вызывать любой из них. Добраться до него можно так
где $aSheet – это активный лист, а B6 – нужная ячейка.
По поводу рамки: судя по всему настроек ширины рамки в библиотеке нет.
Автор: Александр, 21 апреля 2010 в 15:10
используетСпасибо за статью, оч интересно тока такой вопрос: создал файл впихнул туда ваш код ткнул к классу, открываю страницу в браузере сразу же скачивается xls документ, в котором вся моя страница с headom и footerom и в середине ошибка
Fatal error: Uncaught exception ‘Exception’ with message ‘Multibyte string function overloading in PHP must be disabled.’ in C:\Program Files\Bitrix Environment\www\Classes\PHPExcel\Writer\Excel5.php:163 Stack trace: #0 C:\Program Files\Bitrix Environment\www\page.php(39): PHPExcel_Writer_Excel5->save(‘php://output’) #1 {main} thrown in C:\Program Files\Bitrix Environment\www\Classes\PHPExcel\Writer\Excel5.php on line 163
вопрос собственно как сделать чтобы в таблицу не попадало все подряд а только то что я создам
Автор: web-junior, 21 апреля 2010 в 17:34
используетСудя по ошибке у вас включена перегрузка строковых функций. Самый лучший способ, это в php.ini отключить эту функциональность установив опцию
mbstring.func_overload в off
Автор: Дмитрий, 22 апреля 2010 в 11:35
используетА есть ли возможность позиционировать изображения по центру?Смещение по X/Y не очень походит, просто много изображений и все в разном соотношении width/height.
Кстати, я там выше писал по поводу ширины рамки вот как можно менять:
PHPExcel_Style_Border::BORDER_NONE
PHPExcel_Style_Border::BORDER_THIN
PHPExcel_Style_Border::BORDER_MEDIUM
PHPExcel_Style_Border::BORDER_DASHED
PHPExcel_Style_Border::BORDER_DOTTED
PHPExcel_Style_Border::BORDER_THICK
PHPExcel_Style_Border::BORDER_DOUBLE
PHPExcel_Style_Border::BORDER_HAIR
PHPExcel_Style_Border::BORDER_MEDIUMDASHED
PHPExcel_Style_Border::BORDER_DASHDOT
PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT
PHPExcel_Style_Border::BORDER_DASHDOTDOT
PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT
PHPExcel_Style_Border::BORDER_SLANTDASHDOT
Автор: web-junior, 22 апреля 2010 в 21:21
используетУ самого класса PHPExcel_Worksheet_Drawing нет методов для установки позиционирования изображения. Можно попробовать с помощью класса PHPExcel_Style_Alignment установить для ячейки выравнивание по центру. Но кажется на изображение это никак не влияет.
По поводу ширины рамки.
То, что вы написали – это стиль рамки. Действительно, если вместо PHPExcel_Style_Border::BORDER_DASHED использовать PHPExcel_Style_Border::BORDER_MEDIUM, то можно добиться изменения размера рамки. Но установки конкретной ширины невозможно.
Автор: Дмитрий, 26 апреля 2010 в 11:03
используетА такой еще вопросик, как определить размер полей и колонтитулов в параметрах страницы, есть ли такая возможность?
По умолчанию верхнее и нижнее поле = 1.9, а левое и правое = 1.8 , что в принципе достаточно много для вывода на печать, достаточно было бы все по 1…
Автор: web-junior, 26 апреля 2010 в 21:51
используетЭти настройки можно найти в классах PHPExcel_Worksheet_HeaderFooter, PHPExcel_Worksheet_PageMargins, PHPExcel_Worksheet_PageSetup