Blog de Nicolas Hachet

PHPExcel : optimiser la lecture d’un fichier XLS

Si vous utilisez régulièrement PHPExcel, vous savez que les performances de la librairie de lecture / écriture de fichiers Excel sont très moyennes. PHPExcel utilise de nombreuses classes PHP permettant de décrire les composants d’un fichier XLS ou XLSX, ce qui alourdit la consommation processeur et la consommation mémoire. A la décharge de la team PHPExcel,  la structure des fichiers Microsoft est peu adaptée à ce genre de manipulation. En outre, c’est une excellente librairie qui rend bien des services aux développeurs PHP que nous sommes (ou pas).

Dans cet article, publié volontairement vide, je vous laisse la parole afin de connaitre vos techniques d’optimisations de lecture d’un fichier Excel avec PHPExcel.

L’idée est de connaitre les astuces et les techniques d’optimisation qui permettent d’obtenir des performances acceptables.

Les commentaires sont ouverts !

Techniques pour optimiser PHPExcel

$objPHPExcel->getActiveSheet()->getStyle(‘C5:R95′)->applyFromArray(
    array(‘fill’ => array(
        ‘type’ => PHPExcel_Style_Fill::FILL_SOLID,
        ‘color’ => array(‘argb’ => ‘FFFFFF00′)
    ),
));

Alternatives à PHPExcel

Source : http://stackoverflow.com/questions/3930975/alternative-for-php-excel (actualisée par Mark Baker). N’hésitez pas à consulter l’original pour une version à jour et complète.

Il s’agit de librairies moins complètes que PHPExcel mais qui correspondent peut être à vos besoins. J’ai sélectionné celles qui paraissent pertinentes dans un contexte de production.

Librairie

Remarque

PEAR’s PHP_Excel_Writer Format : XLS
Action : écriture
XLS File Generator & Reader Format : XLS
Action : écriture et lecture
Payant
Excel Writer XML for PHP Format : XLS (XML)
Action : écriture
Ilia Alshanetsky’s Excel extension basé sur LibXL Format : XLS
Composant LibXL payant
Action : écriture et lecture
php-spreadsheetreader Format : XLS, ODS, CSV
PHP-ExcelReader Format : XLS
PHP_Excel_Reader 2.21 / PHP_Excel_Reader 2.22 Format : XLS