Создание XLS файла в PHP

На работе потребовалось выгружать прайс в формате 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….
Поставим @, чтобы ошибка не мешала нам. Криминал в общем.

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