Как записать электронную таблицу Excel в переменную с помощью PHPExcel?
После загрузки объекта PHPExcel с моими данными я хочу вывести содержимое непосредственно в переменную php вместо записи в файл. Я пропустил способ сделать это, потому что кажется, что единственный способ сохранить - это сохранить на диск.
2 answers
Вы можете использовать средство записи для сохранения на диск или сохранить в php://вывод. В последнем случае вы можете использовать буферизацию вывода для захвата этого вывода, а затем сохранить его в переменной.... хотя я не совсем понимаю, зачем вам это нужно.
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
Поскольку PHPExcel в любом случае записывает файл на диск, если вы записываете стандартный вывод, внутренне происходит следующее: файл записывается на диск, затем считывается с диска (и удаляется), распечатывается в стандартный вывод и затем записывается в буфер вывода.
С таким же успехом вы могли бы сделать:
$tmpfile = tempnam($tmp_dir, 'phpxltmp');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($tmpfile);
$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);