Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load excel file into PHP_Excel from variable

Tags:

php

phpexcel

I currently have this

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

The file I am reading is extracted from an email, so rather then writing it to a tempfile I would like to read it directly into phpexcel from a string (if that makes sense)

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

I have looked at the php excel manual but can't see how to do it, any ideas?

like image 330
bumperbox Avatar asked Mar 02 '12 18:03

bumperbox


3 Answers

This might not be the most elegant solution but here is how I solved it:

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;
}
like image 162
Dieter Gribnitz Avatar answered Sep 22 '22 15:09

Dieter Gribnitz


PHPExcel provides no direct method for loading from a string rather than from a file. As an alternative to actually creating a physical filesystem file for $tmpfile though, you might be able to use php://memory or php://temp

like image 39
Mark Baker Avatar answered Sep 25 '22 15:09

Mark Baker


You must first create a reader for the excel file and then load that file from your constructed reader. Take a look at this for full details.

like image 25
Amin Fazli Avatar answered Sep 26 '22 15:09

Amin Fazli