Nicolas Hachet Architecte d'entreprise

PHPExcel : optimiser la lecture d’un fichier XLS

Image

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 : https://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 |