2010-10-18 5 views
0

Nous utilisons actuellement la bibliothèque PHP Spreadsheet_Excel_Writer pour générer des rapports basés sur des feuilles Excel. La bibliothèque consomme beaucoup de mémoire/temps lorsque nous essayons de générer des rapports contenant 20k-25k lignes. Plusieurs fois cela prend plus de 20 secondes pour générer un fichier.Bibliothèque de feuilles de calcul PHP

Des suggestions sur quelle bibliothèque peut-on utiliser à la place de Spreadsheet_excel_writer pour gérer des fichiers volumineux? Une idée de comment PHPExcel se comporte avec de gros fichiers?

+1

** duplicata possible de [Alternative for PHP_excel] (http://stackoverflow.com/questions/3930975/alternative-for-php-excel) ** - la liste donnée par Mark Baker est complète et répond aussi à votre question sur la performance de PHPExcels. – Gordon

Répondre

1

PHPExcel a des problèmes avec les fichiers volumineux, mais aussi toutes les bibliothèques de tableurs PHP que je connais, à la fois en termes de mémoire et de performance. C'est une zone qui a été adressée dans une certaine mesure avec la mise en cache des cellules, ce qui réduit les besoins en mémoire typiques pour chaque cellule d'environ 1k/cell à 350bytes/cell, mais à un coût en vitesse. Toutefois, l'utilisation de l'un des auteurs double cette exigence que les données à écrire est construit en mémoire. Nous travaillons activement à essayer de réduire les besoins en mémoire sans trop nuire à la vitesse d'exécution, mais c'est un problème permanent lorsque l'on travaille avec de gros volumes de données. Gordon a pointé vers un lien référençant les alternatives à PHPExcel. Le mieux que je puisse suggérer est de regarder toutes les options, et voir qui répond à vos besoins réels en termes de fonctionnalités, formats de sortie, etc, et de tenir compte du fait que les développeurs PHPExcel travaillent activement sur les problèmes de mémoire et de vitesse, même si aucune solution "optimale" n'a encore été atteinte; mais soyez prêt à augmenter votre mémoire PHP si nécessaire.

Questions connexes