2

我有大xlsx文件。我想在一个数组中读取(使用 PHPExcel)并将该数组加载到 mysql 数据库中。当我为相同的代码加载小 xlsx 文件时,它工作正常,但对于给出警告的大文件:simplexml_load_string():内存分配失败:缓冲区增长

这是我的代码:

<?php

$inputFileType = PHPExcel_IOFactory::identify('mylarge.xlsx');

                $objReader = PHPExcel_IOFactory::createReader($inputFileType);  

                $objReader->setReadDataOnly(true);

                /**  Load $inputFileName to a PHPExcel Object  **/  
                $objPHPExcel = $objReader->load('mylarge.xlsx');

                $total_sheets=$objPHPExcel->getSheetCount(); 

                $allSheetName=$objPHPExcel->getSheetNames(); 
                $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
                $highestRow = $objWorksheet->getHighestRow(); 
                $highestColumn = $objWorksheet->getHighestColumn();  
                $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);  
                for ($row = 1; $row <= $highestRow; ++$row) 
                {  
                    for ($col = 0; $col <$highestColumnIndex; ++$col)
                    {  
                            $value=$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();  

                            $arraydata[$row-1][$col]=$value; 


                    }  

                }



        print_r($arraydata);

?>

mylarge.xlsx 文件包含700000行。

谁能告诉我如何解决这个问题。

谢谢你。

4

0 回答 0