使用我的数据加载PHPExcel对象后,我想直接将内容输出到php变量,而不是写入文件。我是否错过了这样做的方法,因为似乎保存的唯一方法是保存到磁盘。
答案 0 :(得分:46)
您可以使用编写器保存到磁盘,或保存到php://输出。如果是后者,您可以使用输出缓冲来捕获该输出,然后存储在变量中....不确定为什么要这样做。
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
答案 1 :(得分:0)
由于PHPExcel在任何情况下都将文件写入磁盘,如果你捕获stdout,内部发生的是文件写入磁盘,然后从磁盘读取(并删除),打印到stdout然后捕获输出缓冲区。
您不妨这样做:
$tmpfile = tempnam($tmp_dir, 'phpxltmp');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($tmpfile);
$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);