écrire dans un excel depuis des variables PHP

Résolu/Fermé
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 - 11 juil. 2020 à 01:31
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 - 11 juil. 2020 à 19:51
Bonjour/Bonsoir,

Je suis en train de développer une application web qui me permet de préremplir des factures sous Excel.
J'ai vraiment du mal à comprendre comment on inscrit une donnée (une variable en PHP) dans une certaine case d'un excel déjà crée !

J'ai du lire et tester 150 fois ce forum qui en parle :
https://g-ernaelsten.developpez.com/tutoriels/excel2007/?page=modifier-l-existant
Sans résultat positif !


Le but étant de remplir les entête de mes factures nom prénom tel... Via un site WEB
Actuellement tout est enregistrer dans une base de données, mais le soucis n'est pas la.

Je ne voie pas comment faire pour par exemple :

-Partir d'un style de tableau excel. (Stocker sur le serveur web)
-Modifier la case A15 pour y écrire "Client X"
-Puis lancer un téléchargement automatique de l'excel modifier

(Sans la partie récupération des infos de la base de données) Juste quelque chose du genre:
J'ouvre la page web ça écrie "Client X" dans la case A12 puis ça le télécharge dans le navigateur

J'adapterais le code en fonction bien sur :! Pour intégrer la récupération des données depuis la BDD


Merci d'avance
A voir également:

4 réponses

yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 juil. 2020 à 08:48
bonjour, pour commencer, laissons de coté le téléchargement automatique.
qu'as-tu essayé?
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
11 juil. 2020 à 11:32
Bonjour,
Voici le test que j'ai fait, enfin un des nombreux tests :

<?php
$objet = PHPExcel_IOFactory::createReader('Excel5');

$excel = $objet->load('facture.xls');

$sheet = $excel->getSheet(0);

$sheet->setCellValue('A12', 'Corentin');

$writer = PHPExcel_IOFactory::createWriter($excel);
$writer->save('facture-modifier.xls');
?>


Merci de votre retour
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
Modifié le 11 juil. 2020 à 13:44
Pour info :
- Le fichier .xls est placer au même endroit que le .php
- J'ai essayer en .xlsx aussi
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 juil. 2020 à 13:59
tu ne décris pas en quoi le code ne fait pas ce que tu attends.
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39 > yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
11 juil. 2020 à 14:08
Juste pour comprendre le fonctionnement, j'aimerais écrire "Corentin" dans la case "A12" en utilisant le fichier "facture.xlsx" (Facture Vierge) puis enregistrer le fichier modifier dans un autres fichier nommée "facture-modifier.xlsx"

J’adapterais le code en fonction par la suite..
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023
11 juil. 2020 à 14:13
ce code fonctionne-t'il comme tu le souhaites?
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39 > yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
Modifié le 11 juil. 2020 à 14:15
Non sinon j'aurais pas ouvert de forum d'aide...



Bien sur l'Excel n'est pas modifier...
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
11 juil. 2020 à 14:36
Bonjour,

Pour commencer, PhpExcel n'est plus maintenu. Il faut le remplacer par PHPSpreadSheet

The project has not be maintained for years and must not be used anymore. All users must migrate to its direct successor PhpSpreadsheet, or another alternative.


Par contre, il te faut un php 7.2 minimum, et composer pour faire l'installation.

Je te laisse le lien vers la documentation :
https://phpspreadsheet.readthedocs.io/en/latest/

Et oui, il faudra installer sur ton serveur... sinon ton code php ne fonctionnera pas.

0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
11 juil. 2020 à 17:15
Bonjour, merci de ta réponse !

Je vais regarde Phpspreadsheet a premiere vue le lien que tu mas donnée devrais me faire pas mal avance sur mon idée !

Je te tiens au courant merci de l'info en tout cas !
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
11 juil. 2020 à 17:36
Bon, je galère un peu a l’installation de composer.. et de phpspreadsheet..

J'ai bien fait les 4 commande pour l'installaton de composer :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"


Mais après je ne peux pas exécuter la commande :
composer require phpoffice/phpspreadsheet

Voir le screen si dessous



Idem sur le code présenter par le site PhpSpreadsheet il utilise un require vendor/autoload.php ou puis-je recuperer ce fichier .php ?

Merci encore
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39 > CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023
Modifié le 11 juil. 2020 à 19:29
Bon finalement apres 2H de galérer j'ai réussis a installer PhpSpreadsheet's par contre je n'arrive pas a le faire fonctionner même avec le code dispo sur le site de PhpSpreadsheet's

test.php :
<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');
?>   


J'ai essayer de commenter chaque ligne c'est la dernière qui pose soucis :
$writer->save('hello world.xlsx');


0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
11 juil. 2020 à 19:51
Bon je clos ce sujet dans le sens ou le soucis a été résolut je sais maintenant qu'il faut utiliser PhpSpreadsheet's et non PHPExcel.

Je vais faire encore des essaie dans le cas ou je n'arrive pas a faire fonctionner PhpSpreadsheet's je rouvrirais un second poste.

Pour l'installation de composer je vous conseil ce lien :
https://www.hostinger.fr/tutoriels/comment-installer-et-utiliser-composer/

Les info dispo sur le site officel de composer sont pas forcement bien expliquer
0