2015-06-10 4 views
0

Я работаю с огромным файлом excel с 5500 строками и 50 столбцами, Обработка всего 100 строк требует более одной минуты, чтобы иметь дисплей, и я не могу обработать весь файл i все еще жду более 6 минут без каких-либо результатов, Я пытался использовать кешированные методы (у меня нет больших знаний для такого рода методов, которые вы увидите в моей попытке ниже), он работает со 100 строками, но, конечно, в первый раз я подождал одну минуту, и после этого мгновенно получаю свои данные, и, кроме того, я не могу обработать свой огромный файл. это моя попытка:обрабатывать огромный файл excel с php

<?php 
    require_once ".\Classes\PHPExcel\IOFactory.php"; 
    $objPHPExcel = PHPExcel_IOFactory::load("zfg01_CAT.xlsx"); 
    $sheet = $objPHPExcel->getSheet(0); 
    include 'fonctionsUtiles.php'; 
    $cache = 'cache/index.html'; 
    $expire = time() - 3600; // valable une heure 

    if (file_exists($cache) && filemtime($cache) > $expire) { 
     readfile($cache); 
    } else { 
     ob_start(); // ouverture du tampon 

     afficherUneFeuille($sheet); 
     echo'<br>'; 
     echo $sheet->getHighestRow(); 
     echo'<br>'; 

     supprimerLesDoublons($sheet); 
     afficherUneFeuille($sheet); 
     echo $sheet->getHighestRow(); 
     echo'<br>'; 
     $page = ob_get_contents(); // copie du contenu du tampon dans une chaîne 
     ob_end_clean(); // effacement du contenu du tampon et arrêt de son fonctionnement 

     file_put_contents($cache, $page); // on écrit la chaîne précédemment récupérée ($page) dans un fichier ($cache) 
     echo $page; // on affiche notre page :D 
    } 
    ?> 

Спасибо за вашу помощь извините за мой плохой английский ^^

+0

Обработать файл как фоновое задание, а затем просто загрузить результаты. –

+0

Прочитайте документы PHPExcel для некоторых методов разбивки файла на «куски» для обработки –

ответ

0

Вы можете попробовать использовать Spout: https://github.com/box/spout. Использование его простое и поддерживает очень большие файлы, не требуя каких-либо изменений в php.ini и методах кэширования.