Générer un fichier word en php
coucourde
-
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
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.";
}
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:
- Générer un fichier word en php
- Fichier bin - Guide
- Word 2013 - Télécharger - Traitement de texte
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
3 réponses
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/
Edit: https://silkyroad.developpez.com/Excel/PublipostageWordExcel/
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+
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+
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 !!!
Avec cette méthode, je n obtient toujours qu une lettre pour le dernier client !!!