2015-01-23 6 views
-2

Я пытаюсь создать приложение для загрузки и прочитать большой файл excel (более 60 000 строк) с использованием библиотеки PHPExcel. Я получаю внутренний сервер. Он работает нормально до 600 строк. Но он не работает для больших файлов. Пожалуйста помоги.PHP читает большую ошибку файла excel

Или любая другая библиотека php, доступная для загрузки больших файлов.

set_time_limit (36000);

ini_set('max_execution_time', 36000); 

##$top_records is a boolean set to get just the header and the first data row ((For field Mapping))   

if (PHP_SAPI == 'cli') 
    die('This example should only be run from a Web Browser'); 

set_include_path(get_include_path() . PATH_SEPARATOR . SITE_PATH . '/core/extLib/Excel/Classes/'); 

require_once (SITE_PATH . '/core/extLib/Excel/Classes/PHPExcel.php'); 

include (SITE_PATH . '/core/extLib/Excel/Classes/PHPExcel/IOFactory.php'); 
PHPExcel_Cell::setValueBinder1(new PHPExcel_Cell_AdvancedValueBinder()); 
$inputFileName = $file; 

$inputFileType = PHPExcel_IOFactory::identify($inputFileName); 

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

$objPHPExcel = $objReader->load($inputFileName); 

Благодаря

+0

Ну, мы могли бы потратить некоторое время на то, чтобы узнать, что происходит, или что делает ваш код, или вы можете __post некоторые сообщения кода__ и __error messages__ и достойное описание проблемы. –

+0

Скорее всего, вы превысите пределы тайм-аута памяти или сценария. Формат Excel не очень эффективен, и для него не являются библиотеками PHP. –

+0

Спасибо @HoboSapiens. Пожалуйста, проверьте выше код – pearl

ответ

0

К сожалению PHPExcel не предназначен для обработки очень больших файлов. Изменение предела памяти или ограничения по времени в лучшем случае временное исправление, но у вас будет такая же проблема с большими файлами.

Я могу предложить вам взглянуть на Spout. Он отлично подходит для вашего использования!

0

У меня такая же ваша проблема. Возникает проблема при работе на этой линии

$objPHPExcel = $objReader->load($inputFileName);

0

увеличение лимита памяти. (например: ini_set('memory_limit', '512')),

Или вместо этого использовать кусок. link