> Tous les forums > Forum des Webmasters
 Remplissage de fiche Excel 'type' via lecture de Base de donnéessSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
XaK
  Posté le 09/07/2020 @ 15:00 
Aller en bas de la page 
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é
XaK
 Posté le 10/07/2020 à 12:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Jean-Pierre
 Posté le 10/07/2020 à 13:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Trahis par un mot ou bien mal choisi ? (in bottom...)

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 ?

XaK
 Posté le 10/07/2020 à 13:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Jean-Pierre
 Posté le 10/07/2020 à 14:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

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.

XaK
 Posté le 10/07/2020 à 15:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ?

zoulouman
 Posté le 10/07/2020 à 15:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut,

Je ne sais pas ce que tu veux exactement, mais toujours est-il que PHP et MySQL s'entendent à merveille !
Je serais étonné que tu ne parviennes pas à ton but avec PHP et SQL.

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...
Mais pour afficher tes données, je ne vois pas de souci ou obstacle. Même un export en CSV, JSON, XML, etc, est possible. PHP peut le faire !

Jean-Pierre
 Posté le 10/07/2020 à 17:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

XaK a écrit :

.../...

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 ?

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&#6152936

Mais bon, si tu navet ou pommes de terre percuté en temps voulu, certainement que ce n'était pas intéressant pour ta recherche.

Jean-Pierre
 Posté le 10/07/2020 à 19:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

XaK
 Posté le 13/07/2020 à 13:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
zoulouman a écrit :

Salut,

Je ne sais pas ce que tu veux exactement, mais toujours est-il que PHP et MySQL s'entendent à merveille !
Je serais étonné que tu ne parviennes pas à ton but avec PHP et SQL.

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...
Mais pour afficher tes données, je ne vois pas de souci ou obstacle. Même un export en CSV, JSON, XML, etc, est possible. PHP peut le faire !

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

XaK
 Posté le 13/07/2020 à 13:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Jean-Pierre a écrit :

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

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.

Jean-Pierre
 Posté le 13/07/2020 à 14:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

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"

XaK
 Posté le 13/07/2020 à 17:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 :

<?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.

Pourtant ma bibliothèque me semble correctement installée..



Modifié par XaK le 13/07/2020 17:01
Jean-Pierre
 Posté le 13/07/2020 à 18:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Mais... vois-tu la ressource qui pourtant manque ?

XaK
 Posté le 21/07/2020 à 07:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Jean-Pierre
 Posté le 21/07/2020 à 12:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Tu me fais penser à un truc qui vient de m'arriver !!!

Du genre tout con de chez tout con.

Quelle extension ton fichier ?

XaK
 Posté le 21/07/2020 à 12:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 !

Jean-Pierre
 Posté le 21/07/2020 à 12:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Oui alors je t'invite à lire un topic à parti de :

https://forum.pcastuces.com/anti_spam_par_image-f2s18268.htm?page=1&#6203390

Tu verras c'est incroyable !

Si ça se trouve... ?

XaK
 Posté le 22/07/2020 à 13:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ?

Jean-Pierre
 Posté le 22/07/2020 à 14:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

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 ?

XaK
 Posté le 23/07/2020 à 09:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

Jean-Pierre
 Posté le 23/07/2020 à 10:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

'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

XaK
 Posté le 23/07/2020 à 16:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 :

<?php

//load spreadsheet
$spreadsheet = \vendor\phpoffice\Phpspreadsheet\src\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'); ?>
Jean-Pierre
 Posté le 23/07/2020 à 17:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

A première vue une chose étrange :

Ce path est une string ?

Si oui = simple quote...

zoulouman
 Posté le 24/07/2020 à 01:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Jean-Pierre a écrit :

A première vue une chose étrange :

Ce path est une string ?

Si oui = simple quote...

Dans cette situation, simple ou double quote, ça revient au même.

Avec les doubles quote, il faut faire gaffe, tout est interprété.
Par exemple "\t" deviendra une tabulation, "\n" deviendra un saut de ligne Unix, "$mon_cul" pendra la valeur de la variable $mon_cul.

La différence entre simple et double quote, c'est ça.
Ce qui est entre simple quote est du texte, même si le caractère d'échappement est utilisé ( \ ) il restera du texte. Avec les doubles quotes, le caractère d'échappement et les variables sont interprétés.

En plus, ce n'est pas un path mais une route.



Modifié par zoulouman le 24/07/2020 01:20
XaK
 Posté le 24/07/2020 à 08:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 :

<?php

//load spreadsheet
$spreadsheet = 'vendor\phpoffice\phpspreadsheet\src\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'); ?>

- 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é
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
159,99 €Ecran PC 24 pouces Samsung Odyssey G3 (FHD, 144 Hz, 1 ms) à 159,99 € (via ODR)
Valable jusqu'au 22 Mai

Cdiscount fait une promotion sur l'écran PC Samsung 24 pouces Samsung Odyssey G3 qui passe à 189,99 €. Or Samsung rembourse 30 € pour l'achat de cet écran qui vous reviendra à 159,99 € après remboursement. On le trouve habituellement autour de 220 €.

Cet écran de 24 pouces offre une définition FHD de 1920x1080 pixels et est compatible FreeSync Premium avec un taux de réponse de 1 ms et un rafraichissement de 144 Hz. Connectiques HDMI, VGA et DP.

 


> Voir l'offre
54,99 €SSD Crucial MX500 500 Go à 54,99 €
Valable jusqu'au 22 Mai

Amazon propose actuellement le SSD Crucial MX500 500 Go à 54,99 € livré gratuitement. On le trouve ailleurs à partir de 65,99 €. Ce SSD salué par la critique par son rapport qualité prix imbattable offre des débits de 560 Mo/s en lecture et 510 Mo/s en écriture. Il est garanti 5 ans. 


> Voir l'offre
49,99 €Carte mémoire microSDXC UHS-I SanDisk Ultra 400 Go à 49,99 €
Valable jusqu'au 23 Mai

Cdiscount propose la carte mémoire microSDHC UHS-I SanDisk Ultra 400 Go à 49,99 €. On la trouve trouve ailleurs à partir de 70 €. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro, Nintendo Switch et est accompagnée d'un adaptateur SD.


> Voir l'offre

Sujets relatifs
Carrousel des sortie cinéma sur wordpress + base de donné
Problème de type couverture
Récupérer base de données chez mon hébergeur
WordPress : pas de connection à la Base
Base de données
Annuler une base de données MySQL
base de donnée OVH
Wordpress: conserver la base de donnée (site hacké)
sauvegarde de ma base de données
Sauver la base de données
Plus de sujets relatifs à Remplissage de fiche Excel ''type'' via lecture de Base de donnéess
 > Tous les forums > Forum Forum des Webmasters