我目前有这个
file_put_contents($tmpfile, $attachments[0]['body']);
$objPHPExcel = PHPExcel_IOFactory::load($tmpfile);
我正在阅读的文件是从电子邮件中提取的,而不是将其写入临时文件 我想从字符串中直接读入phpexcel(如果有意义的话)
$objPHPExcel = PHPExcel_IOFactory::load($attachments[0]['body']);
我看过php excel手册,但看不出怎么做,有什么想法吗?
答案 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://memory
或php://temp
答案 2 :(得分:2)
您必须先为excel文件创建一个阅读器,然后从构建的阅读器中加载该文件。有关详细信息,请查看this。