La librairie PhpSpreadsheet est un module de la librairie PHPOffice qui succède à PHPExcel. PHPSpreadsheet et PHPExcel apporte des modifications qui ne permettent pas d’être compatibles. Voir le lien officiel github.
Sur l’utilisation de ce module, des ressources éparses (certaines techniques d’autres plus accessibles selon le niveau avec le langage php) sont disponibles sur le site officiel, les sites web et l’intelligence artificielle.
La configuration et notamment l’installation peut être moins documentée car chaque environnement peut être différent. L’environnement de PHPSpreadsheet nécessite un serveur web et chaque serveur web ou système d’exploitation peut avoir une gestion des ressources différente. Une page de ce chapitre concernera quelques modalités d’installation comme mémo et pour partager les difficultés rencontrées.
Comme c’est mentionné dans la documentation, PHPSpreadsheet permet de lire et d’écrire des fichiers de type xml comme des classeurs ods, xlsx, xls…. PHPSpreadsheet ne permet pas actuellement d’éditer ou modifier un fichier existant. Cependant, il est possible d’ouvrir un fichier comme un classeur, de mémoriser le contenu et d’enregistrer le contenu avec une ou plusieurs modifications dans un nouveau classeur.
Le principal avantage de cette librairie est de pouvoir accéder à une plus ou moins grande partie des fonctions de calcul du tableur par exemple avec un formulaire sur une page web.
Le principal inconvénient de PHPOffice/PHPSpreadsheet est d’utiliser un environnement d’accès et de stockage de données dans un fichier non sécurisé. Il est en effet possible d’accéder en téléchargement aux fichiers ou classeurs juste avec l’url et le nom du fichier ou classeur.
Un inconvénient supplémentaire plus ou moins contournable est la limite en termes de volume de données. Cette limite est liée à plusieurs paramètres mais globalement l’utilisation de cette librairie peut pas ne pas convenir pour accéder à des volumes de données conséquents.
Pour éviter d’être confronté aux limites de volume de données, il est conseillé de préparer les données qui doivent être affichées sur une page web ou d’utiliser conjointement une base de données comme outil de stockage intermédiaire.
Une base de données en comparaison offre un niveau de sécurité plus élevé tant sur l’accès aux données que sur le stockage. Dans cette situation, il est nécessaire soit de ne pas utiliser des données confidentielles sur les fichiers et classeurs du module PHPSpreadsheet soit d’utiliser des outils de sécurité (proxy, VPN…) au niveau de la connection tout en restant attentif aux différentes connections.
Les pages de ce chapitre proposent différents exemples fonctionnels de l’utilisation de cette librairie dans différents contextes.