2010-10-23 7 views
6

Je dois exporter des données de php vers Excel et pouvoir formater divers éléments dans la feuille de calcul Excel.Exporter de PHP vers Excel

Jusqu'à présent, la meilleure bibliothèque que j'ai trouvée est PHPExcel. Cependant, cela semble très lourd et plutôt lent. Certes, c'est très puissant.

Y at-il quelque chose d'un peu plus léger et plus rapide, qui me permet d'exporter vers Excel et de pouvoir appliquer un formatage simple (gras, alignement, bordures)?

+3

J'ai répondu à cette question il y a environ une semaine http://stackoverflow.com/questions/3930975/alternative-for-php-excel/3931142#3931142 –

Répondre

4

Je viens de finir avec ça hier. En utilisant PHPExcel, je n'ai eu aucun problème à lire dans un document «maître» avec le formatage, en écrivant 20-100 lignes de contenu, et en sauvegardant le fichier (je le sauvegarde «à l'écran» pour le téléchargement immédiat. En plus de la vitesse et des frais généraux, je pousse beaucoup de données à sa manière et il n'a aucun problème à faire ce qu'il annonce

Notez que quelque part je lis pour faire le style en série par opposition aux boucles dans la mesure du possible Par exemple, le style a1: a50 par opposition à style->a1, style->a2 dans une boucle Apparemment, les deux scénarios différents ont des implications de mémoire très différentes

La seule chose que j'ai trouvée était quelques bizarreries entre la sortie et la lecture des fichiers Excel 2003. Si vous travaillez entièrement dans des fichiers XLSX, il devrait fonctionner ex actly comme documenté.

+0

Nous recommandons toujours d'appliquer des styles à des plages plutôt que de boucler des cellules individuelles ... il est plus rapide et utilise moins de mémoire, et le fichier Excel généré est plus petit en raison des styles partagés. Une autre astuce de style utile est applyFromArray(), définissant un ensemble de caractéristiques de style (gras, couleur, couleur d'arrière-plan, bordures, etc.) dans un tableau puis les appliquant aux cellules en un seul appel plutôt que de les définir individuellement. –

+0

Oui, j'essaye certainement le format varié au lieu des cellules, mais pour être honnête, il n'y a vraiment pas beaucoup de formatage dans cette feuille du tout. À l'heure actuelle, j'exporte environ 1000 lignes et 6 colonnes, avec une mise en forme de gamme sur 3 lignes et 3 colonnes. Il faut environ 6 secondes (dont environ 1 seconde est l'heure de la requête) pour exécuter sur mon localhost, ce qui est généralement une approximation décente de la vitesse du serveur. – JonoB

+0

@JonoB - Pour écrire vos données dans l'objet PHPExcel, avez-vous regardé la méthode FROMArray() de PHPExcel_Worksheet au lieu de définir individuellement la valeur de chaque cellule. Cela peut être utilisé avec un classeur de valeurs pour forcer le typage de données correct des valeurs de cellule afin d'accélérer le processus de construction du classeur en mémoire. –

Questions connexes