Lire des infos dans une Base de données pour écrire sur une feuille Excel "

Signaler
-
 XaK -
Salut ! J'ai une question un peu complexe et je ne suis pas sur d'être au bon endroit dans le forum, mais je vais la poser ici.

J'ai actuellement une base de données MySQL (rempli préalablement via une feuille excel .csv) et une fiche d'annonce "type"sous format excel.

Je voudrais trouver un moyen de lire cette base de données par commande (via un bouton par exemple), et de remplir automatiquement ma fiche "type" avec les informations lues.

Plus précisément, si j'ai le nom/prénom/âge de plusieurs personnes dans ma base, je voudrais pouvoir sortir une fiche type remplie pour chaque personne avec les informations qui la caractérise.

Ma question est donc : est-ce possible de réaliser ceci en php ? Si cela ne l'est pas, quel langage me permettrait de le réaliser ? J'avoue que je n'ai pas trop d'inspiration actuellement, et je ne trouve pas grand chose sur le web.

Merci d'avance !

3 réponses

Messages postés
548
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
13 juillet 2020
1
Bonjour, désolé du retard...
Alors si j'ai bien compris en gros tu veux générer un fichier excel avec des informations récupérées dans une base de données MySQL?

Si c'est ça tu peux effectivement le faire, il te suffit de créer une connexion PDO : https://www.php.net/manual/fr/book.pdo.php

Ensuite, pour générer un fichier excel il faudra que tu utilises des classes déjà faites... (Sinon bonjour la galère) Tu peux par exemple utiliser la bibliothèque : PhpSpreadsheet

J'espère avoir bien compris ton problème...
Bonjour, merci déjà de votre réponse !
C'est ça l'idée, sauf que je veux modifier une fichier Excel avec les infos récupérés dans la base de données !

J'ai en fait une fiche Excel qui se comporte comme une fiche d'informations "type". Pour l'exemple, on va dire qu'elle ressemble à une fiche de passage d'examen avec l'emplacement des informations à rentrer.


Je voudrais pouvoir lire les données dans ma base de données, et remplir cette fiche "type" pour chaque ligne de la BdD. Toujours pour l'exemple, on va dire que j'ai 10 lignes qui décrivent 10 personnes dans la BdD, avec sur chaque ligne les informations d'une personne..
Je cherche alors le moyen de créer un script, qui permet de lire automatiquement l'ensemble de la BdD, qui créé les 10 fiches de passage pour les 10 personnes et qui les enregistre.

Il faudrait donc un moyen de lire la BdD ligne par ligne, et d'écrire sur ma fiche type à des endroits prédéfinis (puisque je remplis toujours les mêmes endroits du tableur).

Je sais déjà faire le lien entre php et la base via la PDO, mais je ne sais pas quoi utiliser pour modifier automatiquement ma fiche Excel type.

Je vais regarder si PHPSpreadSheet me permet ça :)
Je viens d'étudier la bibliothèque et j'arrive à rédiger et créer des nouveaux fichiers.
Cependant, je rencontre un problème lorsque j'essaye de lire et modifier un fichier déjà existant :
<?php

//load spreadsheet
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("result.xlsx");

//change it
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A3', 'New Value');

//write it again to Filesystem with the same name (=replace)
$writer = new Xlsx($spreadsheet);
$writer->save('result.xlsx');


J'obtiens : Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\IOFactory' not found