php

Créer un fichier WORD à partir de PHP

Voici comment créer un fichier WORD avec PHP

Ce document exploite 2 fichiers

  • template.html qui est le fichier modèle contenant votre fichier type
  • export.php qui est le fichier contenant les sources nécessaires à la création de votre fichier Word.

Etape 1 : Le fichier modèle

Le fichier modèle est une page que vous avez créé à l’aide de Word ou Open Office.

Voici mon fichier template.html d’exemple

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf8">
<title></title>
</head>
<body lang="fr-FR" dir="LTR">
<p>##LOGO##</p>
<p><br /></p>
<p>Coordonnée de livraison :</p>
<p>##CIVILITE## ##NOM## ##PRENOM##</p>
<p>##ADRESSE##</p>
<p>##CP##</p>
<p>##VILLE##</p>
</body>
</html>
Ce qui donne l’affichage ci-dessous :

Comment créer le fichier « template.html » ?

  1. Ouvrez Word ou Open Office, tapez y votre fichier type. Et à chaque emplacement de donnée, tapez le texte ##Exemple## en remplaçant « Exemple » par un terme unique.
  2. Enregistrez votre fichier au format html (template.html) à un emplacement facilement accessible à partir de votre application PHP.
  3. Ouvrez votre fichier modèle template.html à l’aide de votre éditeur HTML afin de vérifier que vos variables introduites à l’aide de Word n’ont pas été formatées texte lors de l’enregistrement.
  4. Une fois toutes vos variables en bonne forme et place au sein du code HTML, enregistrez et fermez le template.html.
  5. Passez à l’étape 2.

Etape 2 : Les variables PHP

J’ai veillé à nommer toutes mes variables dans template.html par le même nom que j’utiliserais dans export.php

Voici le fichier export.php

< ? //Je suppose que vous avez déjà les variables php renseignées. Que ce soit un renseignement statique ou de données provenant de la base de données. Nommez vos variables selon les noms contenus dans le fichier template.html

// Je capture et mémorise le contenu du fichier template.html

$content = file_get_contents(dirname(__FILE__).'/template.html'); // Attention au chemin d'accès au fichier template. ici, il est dans le même répertoire que export.php sinon donnez le chemin correct.

$content = str_replace('##LOGO##', $logo, $content);
$content = str_replace('##CIVILITE##', $civilite, $content);
$content = str_replace('##NOM##', $nom, $content);
$content = str_replace('##PRENOM##', $prenom, $content);
$content = str_replace('##ADRESSE##', $adresse, $content);
$content = str_replace('##CP##', $cp, $content);
$content = str_replace('##VILLE##', $ville, $content);

// La suite du fichier à l'étape 3

 ?>

Etape 3 : La génération et l’ouverture du fichier word

Cette étape consiste à créer le fichier physique sur le disque dûr et y acceder.

Ce code est à insérer dans l’étape 2 EN FIN DE CODE

$filename = "facture.doc";// Vérifie que l'on peut écrire dans le fichier if(!is_writable($filename)) exit();// Vérifie que l'on peut ouvrir le fichier
if (!$handle = fopen($filename, 'a')) 
exit("Impossible d'ouvrir le fichier ($filename)");

// On ajoute le contenu de exemple.html
if (fwrite($handle, $content) === FALSE) 
exit("Impossible d'écrire dans le fichier ($filename)");

echo "<a href='$filename'>Télécharger le fichier</a>";
fclose($handle);

Ci-dessous un exemple d’affichage après avoir exécuter le fichier PHP :

Voilà.

Grâce à ce script vous obtenez un fichier word (.doc) s’appuyant sur le modèle « template.html ».