На работе потребовалось выгружать прайс в формате xls. Решил воспользоваться библиотекой PHPExcel.
//путь к библиотеке require_once('PHPExcel.php'); $phpexcel = new PHPExcel(); $page = $phpexcel->setActiveSheetIndex(0); // автоматическая ширина столбцов $page->getColumnDimension('A')->setAutoSize(true); $page->getColumnDimension('B')->setAutoSize(true); $page->getColumnDimension('C')->setAutoSize(true); $page->getColumnDimension('D')->setAutoSize(true); $page->getColumnDimension('E')->setAutoSize(true); //формируем содержимое $page->setCellValueByColumnAndRow(0, 1, 'Номер'); $page->setCellValueByColumnAndRow(1, 1, 'Фирма'); $page->setCellValueByColumnAndRow(2, 1, 'Описание'); $page->setCellValueByColumnAndRow(3, 1, 'Цена'); $page->setCellValueByColumnAndRow(4, 1, 'Количество'); $j=2; foreach($products as $product){ $page->setCellValueByColumnAndRow(0, $j, $product['articul']); $page->setCellValueByColumnAndRow(1, $j, $product['brand']); $page->setCellValueByColumnAndRow(2, $j, $product['name']); $page->setCellValueByColumnAndRow(3, $j, $product['price']); $page->setCellValueByColumnAndRow(4, $j, $product['count']); $j++; } //отдаем файл пользователю header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="price.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5'); @$objWriter->save('php://output');
При вызове функции save часто выскакивает ошибка Warning: realpath() [function.realpath]: open_basedir restriction in….
Поставим @, чтобы ошибка не мешала нам. Криминал в общем.