Générer un fichier word en php

coucourde -  
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


J'ai une base de données mysql contenant la liste et les adresses de tous mes clients.
Mon service commercial doit pouvoir envoyer des courriers type (papier) mais personnalisés avec l'adresse et le nom de chaque client.

Sur mon intranet, je souhaite developer une fonction en php qui va générer un seul fichier word mais avec plusieurs pages à partir d'une lettre type.

Avec le code ci dessous, j'ai bien un fichier word, mais il ne contient qu'une seule page... je n'ai pas autant de page que de client !!!!!!


HELLPPPPPP !!!!!!



$content=file_get_contents('Template.htm');
$content_doc = "";
$content_default="";


$requete = mysql_query("SELECT * FROM Clients ORDER BY Departement");

while ($ligne = mysql_fetch_array($requete)) {

$content_default=$content;
$adresse = $ligne["adresse"];
$sexe= $ligne["sexe"];
$nomClient= $ligne["nom"];
$adresseclient2= $ligne["adresse2"];
$adresseclient3= $ligne["adresse3"];
$codePostal= $ligne["codePostal"];
$ville= $ligne["Ville"];

$content_default=str_replace('$adresse',$adresse,$content_default);
$content_default=str_replace('$sexe',$sexe,$content_default);
$content_default=str_replace('$nomClient',$nomClient,$content_default);
$content_default=str_replace('$adresseclient2',$adresseclient2,$content_default);
$content_default=str_replace('$adresseclient3',$adresseclient3,$content_default);
$content_default=str_replace('$codePostal',$codePostal,$content_default);
$content_default=str_replace('$ville',$ville,$content_default);
$content_doc .= $content_default;

}


$filename="Courrier.doc";
touch($filename);
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'w+')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
if (fwrite($handle, $content_doc) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "<a href='$filename'>Télécharger le fichier</a>";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
A voir également:

3 réponses

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Regarde du côté du publipostage et d'odbc... y a surement moyen de faire qqch de "natif" ;)

Edit: https://silkyroad.developpez.com/Excel/PublipostageWordExcel/
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonjour,

Votre problème c'est le publi-postage. Il y a une solution PHP extrêmement simple et je l'explique ici:
https://html5.immo-scope.com/article/php_publiPostageDocumentWord

A+
0
Coucourde
 
Merci pour vos réponses. Cependant, j ai 500 clients dans ma base de données a qui je veux envoyer cette lettre personnalisée. Je ne veux pas avoir a récupérer 500 fichiers word, mais un seul qui contient 500 pages ( une lettre par page).

Avec cette méthode, je n obtient toujours qu une lettre pour le dernier client !!!
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
dans ce cas, il vous reste les solutions de fusion classique. Avez-vous essayé la fusion des adresses à partir d'un fichier CSV? Le fichier des adresses au format CSV est facile à générer en PHP.
0