Petit astucien | 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 ! | |||||||
Publicité | ||||||||
| ||||||||
Petit astucien | J'ai lu la page consécutive au lien, mais cela ne correspond pas trop à mon problème. Microsoft Acces permet de lier une base de données MySQL à un tableur Excel, de manière à ce que les modifications sur la BdD soient retranscrites dans le tableur, et vice-versa. Ce n'est pas ce dont j'ai besoin. Moi j'ai actuellement une base de données MySQL et je voudrais pouvoir remplir ma fiche Excel (qui ressemble à une fiche de présentation et non un bête tableur) avec les informations nécessaires. Je met un exemple en dessous : J'ai donc ici un bout de ma fiche Excel de présentation standard. Et par rapport à cet exemple, je chercherais à remplir la photo précédente avec les informations de TITRE, REPERE, DATEDEBUT, HEUREDEBUT, DATEFIN qui seront lues dans la base de données. Je cherche donc un script/langage de prog qui me permettrait de lire l'ensemble de ma BdD ligne par ligne, et qui créerait autant de fiches Excel qu'il y a de lignes. Chacune de ses fiches seraient identiques dans leur présentation (puisque je part toujours de la même fiche type que je remplis). Seuls les endroits entre crochets seraient remplis différemment, selon les informations lues dans la BdD. En gros, j'ai un modèle de fiche Excel, une base de données et je voudrais écrire un code qui me permettrait de lire l'ensemble de la base, et de créer chacune des fiches nécessaires (avec les infos correspondantes). EDIT: j'espère que je suis clair, j'ai du mal à bien expliquer mes attendus Modifié par XaK le 10/07/2020 12:40 | |||||||
![]() ![]() | Trahis par un mot ou bien mal choisi ? Pour en revenir à nos moutons ou durtons, dans ton premier thread sur PCA nous t'avions déjà donné des pistes...
T'en souviens-tu ? | |||||||
Petit astucien | J'ai vraiment du mal à comprendre certaines de tes phrases parfois, mais au moins ça me donne le sourire ahah Sinon concernant les pistes, le topic précédent était un peu parti dans tous les sens... Tu parles de l'utilisation de JS ? Si oui, je pourrais utiliser JS pour lire l'ensemble de ma BdD et écrire sur ma fiche excel les informations tirées de cette base ? Modifié par XaK le 10/07/2020 13:19 | |||||||
![]() ![]() | Si tu savais... c'était Licette qui te répondait Pour le topic en question, à ma souvenance, peut-être que ça parlait de JS, mais pas que. Je parle bien de ton premier topic ici sur ce forum Webmasters. | |||||||
Petit astucien | Si tu parles bien de celui sur l’affichage sur tablette automatisé en wifi, je l'ai relu entièrement et je n'ai pas trouvé d'éléments de réponses pour ma question de ce topic Ou alors c'est la fatigue du vendredi qui parle ? | |||||||
Astucien ![]() | Salut, Je ne sais pas ce que tu veux exactement, mais toujours est-il que PHP et MySQL s'entendent à merveille ! Bon après, reste à savoir ce que tu veux faire des données. Le format Office n'est pas du tout un format du web. Il faut le savoir...
| |||||||
![]() ![]() | XaK a écrit : Bien je pensais à ce lien en rapport avec une BdD : https://forum.pcastuces.com/affichage_automatise_par_wifi_en_tablettes_et_pc-f2s18235.htm?page=4� Mais bon, si tu navet ou pommes de terre percuté en temps voulu, certainement que ce n'était pas intéressant pour ta recherche.
| |||||||
![]() ![]() | Un truc trouvé comme ça en passant : http://excel.engalere.com/question/87-importer-un-document-excel-dans-une-base-de-donnees http://excel.engalere.com/questions/search/?q=MySQL Modifié par Jean-Pierre le 10/07/2020 19:16 | |||||||
Petit astucien | zoulouman a écrit : En gros j'ai un fichier Excel qui contient mes données. J'ai importé ces données dans une base MySQL via BigDump. Et j'ai un 2ème fichier 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. On va dire cette forme : (ex créé) 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 (Nom, prénom, date, spécialité etc..).. 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. J'espère que je suis un peu plus clair, j'ai du mal à bien le formuler Edit: je cherche actuellement du côté de PhPSpreadSheet, que je ne connais absolument pas
| |||||||
Petit astucien | Jean-Pierre a écrit : Salut ! Vu ta réponse, je comprends mieux le message m'indiquant de regarder l'ancien topic :) Je te laisse lire mon message juste au dessus, qui explique peut etre un peu mieux ! J'ai déjà importé mon tableur Excel dans ma base de données mais je bloque maintenant sur la partie d'après, qui est l'écriture (en modification) d'une autre page Excel à partir des infos contenus dans cette BdD. | |||||||
![]() ![]() | Désolé, mais en ce domaine Mysql je ne suis aucunement à mon aise. J'ai eu des gros soucis avec et depuis j'évite de l'utiliser. Mais chacun possède ses "grigris" | |||||||
Petit astucien | Je suis parti dans l'idée d'utiliser PhpSpreadSheet pour lire/modifier le tableur Excel type, et une connexion PDO simple pour lire la BdD. Je viens de finir d'installer et d'étudier la bibliothèque. J'arrive très bien à créer et écrire des nouveaux fichiers. Cependant je rencontre une erreur lorsque j'essaye de lire et modifier un fichier déjà existant. J'ai modifié un exemple trouvé sur le net :
J'obtiens : Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\IOFactory' not found. Pourtant ma bibliothèque me semble correctement installée.. Modifié par XaK le 13/07/2020 17:01 | |||||||
![]() ![]() | Mais... vois-tu la ressource qui pourtant manque ? | |||||||
Petit astucien | Oui je comprends ce qu'il est sensé manquer, mais le fichier est pourtant présent .. J'ai regardé si l'adresse était mauvaise, mais non.. ducoup je ne vois pas
Modifié par XaK le 21/07/2020 09:53 | |||||||
![]() ![]() | Tu me fais penser à un truc qui vient de m'arriver !!! Du genre tout con de chez tout con. Quelle extension ton fichier ? | |||||||
Petit astucien | Le fichier IOfactory est en php, il permet de créer la classe IOFactory utilisée ensuite pour lire et modifier des fichiers déjà existants. Pile ce dont j'aurais besoin ! | |||||||
![]() ![]() | Oui alors je t'invite à lire un topic à parti de : https://forum.pcastuces.com/anti_spam_par_image-f2s18268.htm?page=1� Tu verras c'est incroyable ! Si ça se trouve... | |||||||
Petit astucien | Hello ! Alors j'ai terminé de lire le topic que tu m'as indiqué, mais je n'ai absolument pas compris le rapport avec mon problème de lecture en utilisant la bibliothèque PhpSS ? | |||||||
![]() ![]() | Bin si tu as par exemple une page PHP et que le sans boom n'est pas le bienvenu... Autrement dit un truc comme ça fout tout en l'air. Est-ce plus clair ?
| |||||||
Petit astucien | j'ai compris ce que tu m'avais dit merci ! Bon par contre j'ai testé en faisant attention à ce problème, et ça n'a rien changé.. j'en conclus que ça ne venait pas de là ahah Toujours bloqué mais au moins j'élimine les causes possibles au fur et à mesure | |||||||
![]() ![]() | 'obtiens : Uncaught Error: Class 'PhpOffice\PhpSpreadsheet\IOFactory' not found. Pas, par exemple, une histoire toute bête de path comme un "\" en trop au début de chaine ? Pas plus tard qu'hier Licette s'est fait prendre par ce genre d'étourderie | |||||||
Petit astucien | Je suppose que le problème vient de là, mais j'ai beau retourner le chemin dans tous les sens, je ne vois toujours pas l'erreur Voici l'arborescence : Et le dossier où se trouve mon script php contenant le code et le fichier Excel à modifier : Mon script actuel est :
| |||||||
![]() ![]() | A première vue une chose étrange : Ce path est une string ? Si oui = simple quote... | |||||||
Astucien ![]() | Jean-Pierre a écrit :
Dans cette situation, simple ou double quote, ça revient au même. Avec les doubles quote, il faut faire gaffe, tout est interprété. La différence entre simple et double quote, c'est ça. En plus, ce n'est pas un path mais une route.
Modifié par zoulouman le 24/07/2020 01:20 | |||||||
Petit astucien | Salut ! Alors petit état d'avancement ahah : - j'ai tenté \vendor\phpoffice\... et vendor\phpoffice\... et j'obtiens le même message m'indiquant que la classe n'est pas trouvée. - j'ai tenté de modifier mon code pour ne pas passer par IOFactory et plutôt utiliser les reader/writer : https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-and-writing-to-file/ Cependant j'obtiens encore Fatal error: Uncaught Error: Class 'vendor\phpoffice\phpspreadsheet\src\phpspreadsheet\Reader\Xlsx' not found in. Il semble donc que la route indiquée ne lui permet jamais de trouver la classe nécessaire (est-ce vraiment une classe? - la route n'est pas un string : par acquis de conscience j'ai testé avec des ' ', et j'obtiens : Fatal error: Uncaught Error: Call to a member function getActiveSheet() on string Assez logique, puisque je rappelle que mon code est :
- je suppose donc en dernier lieu que le problème vient du chemin, puisque les fichiers semblent bien être présents (cf photos dans mon post précédent). J'avais pensé que le fait qu'il y ai plusieurs phpspreadsheet pouvait "perdre" le chemin : mais même en rajoutant des majuscules à certains endroits, j'obtiens encore l'erreur sur la classe non trouvée...
Je suis totalement perdu sur un code de 5 lignes Edit: de base j'essaye d'adapter ce code : https://stackoverflow.com/questions/50609059/is-it-possible-to-write-in-an-existing-spreadsheet-with-phpspreadsheet Modifié par XaK le 24/07/2020 09:01 | |||||||
Publicité | ||||||||
| ||||||||
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|