如何使用PhpExcel将我的Excel电子表格编写成变量?

时间:2012-02-27 17:57:02

标签: phpexcel

使用我的数据加载PHPExcel对象后,我想直接将内容输出到php变量,而不是写入文件。我是否错过了这样做的方法,因为似乎保存的唯一方法是保存到磁盘。

2 个答案:

答案 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);