Как мне написать мою таблицу Excel в переменную, используя PhpExcel? - PullRequest
25 голосов
/ 27 февраля 2012

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

Ответы [ 2 ]

47 голосов
/ 28 февраля 2012

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

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
0 голосов
/ 06 февраля 2017

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

Вы также можете сделать:

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

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

$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);
...