如何修复codeplex phpexcel中的内存错误?

如何修复codeplex phpexcel中的内存错误?,php,excel,phpexcel,codeplex,Php,Excel,Phpexcel,Codeplex,我试图读取excel文件并将其转换为数组。但是我越来越 following error. Fatal error: Allowed memory size of 1677721600 bytes exhausted (tried to allocate 38 bytes) in /var/www/import_excel/Classes/PHPExcel/Worksheet.php on line 2431 我使用以下代码来阅读 set_include_pat

我试图读取excel文件并将其转换为数组。但是我越来越

    following error.
    Fatal error: 
    Allowed memory size of 1677721600 bytes exhausted (tried to allocate 38 bytes)
    in /var/www/import_excel/Classes/PHPExcel/Worksheet.php on line 2431
我使用以下代码来阅读

set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/');
include 'PHPExcel/IOFactory.php';   


    $inputFileName = $target_file; 
    try {
        $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
    } catch(Exception $e) {
        die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }

error_reporting(-1);
ini_set('display_errors',1);

$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

echo "<pre>";
print_r($allDataInSheet);
die();  
set_include_path(get_include_path().path_SEPARATOR.class/);
包括“PHPExcel/IOFactory.php”;
$inputFileName=$target\u文件;
试一试{
$objPHPExcel=PHPExcel\u IOFactory::load($inputFileName);
}捕获(例外$e){
die('Error loading file'.pathinfo($inputFileName,pathinfo_BASENAME)。'”:'。$e->getMessage());
}
错误报告(-1);
ini设置(“显示错误”,1);
$allDataInSheet=$objPHPExcel->getActiveSheet()->toArray(null、true、true、true);
回声“;
打印($allDataInSheet);
模具();
我需要获取excel数据作为数组。但是excel文件有130列&超过100行。所以当我尝试转换为数组时。我犯了一个错误。但当我尝试使用较少的列和行时,它就起作用了。当我尝试使用130列和50+行时,出现错误


是否有任何替代方法可以将数组转换为数组而不是此$objPHPExcel->getActiveSheet()->数组(null、true、true、true)这条线。请某人提供建议或帮助我解决此问题。谢谢

为什么需要它作为阵列?在PHP中,数组占用大量内存。为什么你不能一行一行地处理它呢?你看过PHPExcel提供的任何单元缓存或其他减少内存使用的选项吗?@MarkBaker hi谢谢你的回答。不,这是我第一次使用Phpexcel。代码已经由以前的程序员编写,现在他们要求我升级代码。这就是我问的原因。整个代码是基于数组值编写的。请告诉我任何关于进入数组的建议,这将是非常好的。我通过增加执行时间、内存限制和文件大小、post大小等各种方式进行了尝试,但只有相同的错误。另外,请看一下您对该数据数组所做的操作的逻辑,如果您可以重构它,一次直接处理来自工作表对象的一行数据,它将节省大量内存为什么需要它作为数组?在PHP中,数组占用大量内存。为什么你不能一行一行地处理它呢?你看过PHPExcel提供的任何单元缓存或其他减少内存使用的选项吗?@MarkBaker hi谢谢你的回答。不,这是我第一次使用Phpexcel。代码已经由以前的程序员编写,现在他们要求我升级代码。这就是我问的原因。整个代码是基于数组值编写的。请告诉我任何关于进入数组的建议,这将是非常好的。我通过增加执行时间、内存限制和文件大小、post大小等各种方式进行了尝试,但只有相同的错误。另外,请看一下您对该数据数组所做的操作的逻辑,如果您可以重构它,一次直接处理来自工作表对象的一行数据,它将节省大量内存