将excel文件从变量加载到PHP_Excel中

时间:2012-03-02 18:39:29

标签: php phpexcel

我目前有这个

file_put_contents($tmpfile, $attachments[0]['body']);
$objPHPExcel = PHPExcel_IOFactory::load($tmpfile);

我正在阅读的文件是从电子邮件中提取的,而不是将其写入临时文件 我想从字符串中直接读入phpexcel(如果有意义的话)

$objPHPExcel = PHPExcel_IOFactory::load($attachments[0]['body']);

我看过php excel手册,但看不出怎么做,有什么想法吗?

3 个答案:

答案 0 :(得分:15)

这可能不是最优雅的解决方案,但这是我解决它的方法:

public function fromString($data=null)
{
    $file = tempnam(sys_get_temp_dir(), 'excel_');
    $handle = fopen($file, "w");
    fwrite($handle, $data);
    $return = \PHPExcel_IOFactory::load($file);
    fclose($handle);
    unlink($file);
    return $return;
}

答案 1 :(得分:5)

PHPExcel不提供从字符串而不是从文件加载的直接方法。作为实际为$ tmpfile创建物理文件系统文件的替代方法,您可以使用php://memoryphp://temp

答案 2 :(得分:2)

您必须先为excel文件创建一个阅读器,然后从构建的阅读器中加载该文件。有关详细信息,请查看this