Как записать электронную таблицу Excel в переменную с помощью PHPExcel?


После загрузки объекта PHPExcel с моими данными я хочу вывести содержимое непосредственно в переменную php вместо записи в файл. Я пропустил способ сделать это, потому что кажется, что единственный способ сохранить - это сохранить на диск.

 24
Author: Aaron, 2012-02-27

2 answers

Вы можете использовать средство записи для сохранения на диск или сохранить в php://вывод. В последнем случае вы можете использовать буферизацию вывода для захвата этого вывода, а затем сохранить его в переменной.... хотя я не совсем понимаю, зачем вам это нужно.

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
 44
Author: Mark Baker, 2012-02-28 11:47:32

Поскольку PHPExcel в любом случае записывает файл на диск, если вы записываете стандартный вывод, внутренне происходит следующее: файл записывается на диск, затем считывается с диска (и удаляется), распечатывается в стандартный вывод и затем записывается в буфер вывода.

С таким же успехом вы могли бы сделать:

$tmpfile = tempnam($tmp_dir, 'phpxltmp');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($tmpfile);

$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);
 0
Author: Arno Schäfer, 2017-02-06 12:58:35