0

I have an issue with getting image and text data from excel file.Well currentlly i'm using PHPspreadsheet library for getting data from excel. So it's gives me image data but not giving me text data. if i looking for text data than it was not getting image data. So i need both type of data can be get in single process of code So if anyone have some idea about this issue to how to get image and text data in one process please give me some suggestion or example

I'm using laravel 5.5 and here is my code

$path = \Storage::disk('local')->getDriver()->getAdapter()->applyPathPrefix("Book1.xlsx");
    $objPHPExcel = IOFactory::load($path);
    $i = 0;
    $obj =$objPHPExcel->getSheetByName("Sheet1")->getDrawingCollection();
    foreach ($obj as $drawing) {
        if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) {
            ob_start();
            call_user_func(
                $drawing->getRenderingFunction(),
                $drawing->getImageResource()
            );
            $imageContents = ob_get_contents();
            ob_end_clean();
            switch ($drawing->getMimeType()) {
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_PNG :
                    $extension = 'png';
                    break;
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_GIF:
                    $extension = 'gif';
                    break;
                case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_JPEG :
                    $extension = 'jpg';
                    break;
            }
        } else {
            $zipReader = fopen($drawing->getPath(),'r');
            $imageContents = '';
            while (!feof($zipReader)) {
                $imageContents .= fread($zipReader,2048);
            }
            fclose($zipReader);
            $extension = $drawing->getExtension();
        }
        /* Getting Column and Row name */
        $c = $drawing->getCoordinates();
        preg_match_all('!\d+!', $c, $matches);
        $column = $matches[0][0];
        $row = strstr($c,$column,true);

        $myFileName = '00_Image_'.++$i.'.'.$extension;
        file_put_contents($myFileName,$imageContents);
    }
Vishnu Sharma
  • 39
  • 1
  • 2
  • 8

0 Answers0