Remplir un document Word avec Base de données SQL
Lurgod_9827
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
teamside Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
teamside Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un projet et je suis bloqué dessus.
En gros, via une page Web(PHP) qui contient des données de ma base de données je dois remplir un document Word
(exemple : Ma base de données contient que des fiches clients, je recherche un certain client sur ma page Web, j'ouvre son profil/sa fiche client, et dans sa fiche client il y a un petit bouton pour créer un devis/une facture (Word) à partir de tout les éléments présent de la fiche client et d'un fichier Word pré-rempli.)
J'arrive à créer un fichier Word à partir d'un autre, mais pas à changer les "Valeurs" dedans
(J'utlise WampServer et PHPMyAdmin)
Est ce que vous pouvez m'aider..?
Voici mon code :
Mon document Word contient seulement : @Date@ @Entreprise@ @Nom@ et @CP@
Tout est situé dans le même dossier dans mon WampServer
Si vous voulez mon Index.html (c'est là que je recherche dans ma bdd) :
Si quelqu'un peut m'aider c'est très gentil de sa part
En gros, via une page Web(PHP) qui contient des données de ma base de données je dois remplir un document Word
(exemple : Ma base de données contient que des fiches clients, je recherche un certain client sur ma page Web, j'ouvre son profil/sa fiche client, et dans sa fiche client il y a un petit bouton pour créer un devis/une facture (Word) à partir de tout les éléments présent de la fiche client et d'un fichier Word pré-rempli.)
J'arrive à créer un fichier Word à partir d'un autre, mais pas à changer les "Valeurs" dedans
(J'utlise WampServer et PHPMyAdmin)
Est ce que vous pouvez m'aider..?
Voici mon code :
<HTML>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=drow;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<table border="1px" style="border-color: #c1c1c1" >
<tr>
<td style="background-color: lightgrey">ID</td>
<td>Entreprise</td>
<td>Nom</td>
<td>Code Postal</td>
</tr>
<form id="bouton" name="bouton" method="post">
<p><input type="submit" name="bouton" value ="VERS WORD"></p>
</form>
<?php
$reponse = $bdd->prepare('SELECT * FROM btob WHERE Entreprise = ?');
$reponse->execute(array($_GET['Entreprise']));
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td style="background-color: lightgrey"><?php echo $donnees['id']; ?></td>
<td><?php echo $donnees['Entreprise']; ?></td>
<td><?php echo $donnees['Nom']; ?></td>
<td><?php echo $donnees['CP']; ?></td>
</tr>
<?php
}
?>
</table>
<?php
$reponse->closeCursor(); // Termine le traitement de la requête
if(isset($_POST['bouton'])) {
$todayfichier = date("d.m.y_H-i");
$today = date("d.m.y");
$nom_fichier = 'devis.'.$todayfichier.'.docx';
$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Facture.docx';
$myContent = file_get_contents($file);
$myContent = str_replace("@Date@",$today,$myContent);
$myContent = str_replace("@CP@",$donnees['CP'],$myContent);
$myContent = str_replace("@Nom@",$donnees['Nom'],$myContent);
$myContent = str_replace("@Entreprise@",$donnees['Entreprise'],$myContent);
$newFile = fopen("$nom_fichier", "a");
fwrite($newFile,$myContent);
fclose($newFile);
}
?>
</HTML>
Mon document Word contient seulement : @Date@ @Entreprise@ @Nom@ et @CP@
Tout est situé dans le même dossier dans mon WampServer
Si vous voulez mon Index.html (c'est là que je recherche dans ma bdd) :
<!doctype html>
<html lang="fr">
<html>
<head>
<meta charset="UTF-8"/>
<title>Accès aux mesures de la serre</title>
</head>
<body>
<h1>BDD</h1>
<div class="page">
<form action="BddVersWord.php" method="GET">
<table>
<tr>
<td>Entreprise:</td>
<td><input type="text" name="Entreprise" size="20"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="EnvValeur" value ="Envoyer"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Si quelqu'un peut m'aider c'est très gentil de sa part
A voir également:
- Remplir un document Word avec Base de données SQL
- Word 2013 - Télécharger - Traitement de texte
- Organigramme a remplir word - Guide
- Signer un document word - Guide
- Tableau word - Guide
- Comment supprimer une page dans un document word - Guide
2 réponses
Bonjour,
Si tu veux manipuler un fichier Word, utilises la classe phpword
https://github.com/PHPOffice/PHPWord
https://phpword.readthedocs.io/en/latest/
Si tu veux manipuler un fichier Word, utilises la classe phpword
https://github.com/PHPOffice/PHPWord
https://phpword.readthedocs.io/en/latest/
Si tu n'as que quelques valeurs à remplacer tu peux utiliser sprintf https://www.php.net/manual/en/function.sprintf.php
Dans ton document générique tu mets des %s là où les valeurs doivent exister puis
Dans ton document générique tu mets des %s là où les valeurs doivent exister puis
$content = sprintf(file_get_contents('path_to_generic_file.doc'), $value1, $value2, $value3, $value4); file_put_contents('path_to_new_file.doc', $content);
Et on peut modifier un document déjà existant avec ça ?