У меня в настоящее время это
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, а затем загрузить этот файл из созданного вами читателя. Взгляните на это для получения полной информации.