Загрузить файл 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, но не вижу, как это сделать, какие-либо идеи?

3 ответов


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