PHPExcel : optimiser la lecture d’un fichier XLS

06 Nov 2012 15

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

  • Utiliser PHP 5.4
  • Travaillez sur un document existant
  • Privilégier la mise en forme des cellules par groupe (Range) plutôt que cellule par cellule
  • Utiliser la fonction applyFromArray
$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_WriterFormat : XLS
Action : écriture
XLS File Generator & ReaderFormat : XLS
Action : écriture et lecture
Payant
Excel Writer XML for PHPFormat : XLS (XML)
Action : écriture
Ilia Alshanetsky’s Excel extension basé sur LibXLFormat : XLS
Composant LibXL payant
Action : écriture et lecture
php-spreadsheetreaderFormat : XLS, ODS, CSV
PHP-ExcelReaderFormat : XLS
PHP_Excel_Reader 2.21 / PHP_Excel_Reader 2.22Format : XLS