Загрузите файл excel в PHP_Excel из переменной

У меня в настоящее время это

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

Файл, который я читаю, извлекается из электронной почты, поэтому вместо того, чтобы записывать его в tempfile, я хотел бы прочитать его непосредственно в phpexcel из строки (если это имеет смысл)

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

Я просмотрел руководство по php excel, но не могу понять, как это сделать, любые идеи?

PHPExcel не предоставляет прямого метода для загрузки из строки, а не из файла. В качестве альтернативы фактическому созданию файла физической файловой системы для $ tmpfile, возможно, вы сможете использовать php://memory или php://temp

Это может быть не самое элегантное решение, но вот как я его решил:

 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; } 

Сначала вы должны создать читатель для файла excel, а затем загрузить этот файл из созданного вами читателя. Взгляните на это для получения полной информации.