Maison  >  Article  >  développement back-end  >  Comment utiliser phpspreadsheet pour couper de gros fichiers Excel (avec code)

Comment utiliser phpspreadsheet pour couper de gros fichiers Excel (avec code)

不言
不言original
2018-08-06 10:19:043221parcourir

Cet article vous présente comment utiliser phpspreadsheet pour découper de gros fichiers Excel (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Contexte :

L'utilisation de phpspreadsheet peut facilement analyser des fichiers Excel, mais la consommation de mémoire de phpspreadsheet est également relativement importante. J'ai essayé d'analyser près de 5 Mo de texte pur et l'utilisation de la mémoire d'Excel dépassera. celle de php. La mémoire maximale par défaut est de 128 Mo.
Bien sûr, cela peut être résolu en ajustant la taille de la mémoire, mais c'est plus dangereux lorsque le degré de concurrence est important. Aujourd'hui, je vais donc présenter la deuxième méthode, en utilisant phpspreadsheet pour couper le fichier Excel. Il s'agit d'une méthode d'échange de temps contre de l'espace, elle peut donc généralement être utilisée pour des exigences de rapidité limitées.

Méthode :

Mettez d'abord une fonction readCell fournie par le site officiel de phpspreadsheet, nous pouvons utiliser cette fonction pour effectuer une découpe.

Tout d'abord, pré-lisez le fichier Excel, principalement pour obtenir toutes les feuilles de calcul et le nombre de lignes de données sous la feuille de calcul. À ce stade, la méthode readCell renvoie toujours false. Il suffit d'enregistrer la feuille de calcul qui readCell. entre. et le nombre de lignes de données.

Ensuite, les enregistrements obtenus sont analysés pour déterminer combien de lignes de données Excel originales doivent être chargées dans chaque partie des données. Il convient de noter que afin d'éviter toute confusion de contenu, ne coupez pas le contenu de. les deux feuilles de travail ensemble.

La dernière étape consiste à parcourir les données analysées et à utiliser à nouveau readCell pour obtenir chaque partie des données. Notez qu'à chaque fois que le fichier est lu, la méthode disconnectWorksheets doit être utilisée pour nettoyer la mémoire de phpspreadsheet. .

Après mes propres tests, j'ai découvert que l'utilisation de cette méthode pour analyser un fichier Excel de 5 Mo ne nécessite qu'une moyenne de 21 Mo de mémoire !

Code :

 https://github.com/wangyelou/Tools/tree/master/CutExcel

Articles connexes recommandés :

Comment utiliser PHP pour lire le contenu des fichiers Excel et obtenir des données cellulaires

Étapes pour implémenter le code de vérification en PHP et le code de vérification côté serveur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn