Td corrigé php poo - Free pdf

php poo - Free

L'opérateur new et la classe COM() permet de faire de l'Automation avec Word, Excel, ? ... collectionApp peut être workbooks, documents, ? .... $excel->Quit(); // --- Fermeture de la connexion au composant COM en quittant l' ..... Corrigé. <? php. // --- word2PdfExo.php. header("Content-Type: text/html; charset=UTF-8");.




part of the document











PHP
Et
Automation











TABLE DES MATIERES



 TOC \o "1-3" \h \z  HYPERLINK \l "_Toc260819151" Chapitre 1 PHP ET AUTOMATION  PAGEREF _Toc260819151 \h 3
 HYPERLINK \l "_Toc260819152" 1.1 POO et OLE Automation  PAGEREF _Toc260819152 \h 4
 HYPERLINK \l "_Toc260819153" 1.2 Automation et Excel  PAGEREF _Toc260819153 \h 5
 HYPERLINK \l "_Toc260819154" 1.2.1 Quelques méthodes et propriétés  PAGEREF _Toc260819154 \h 5
 HYPERLINK \l "_Toc260819155" 1.2.2 Lecture d'un classeur Excel  PAGEREF _Toc260819155 \h 6
 HYPERLINK \l "_Toc260819156" 1.2.3 Modification d'un classeur Excel  PAGEREF _Toc260819156 \h 8
 HYPERLINK \l "_Toc260819157" 1.2.4 Création d'un classeur Excel  PAGEREF _Toc260819157 \h 9
 HYPERLINK \l "_Toc260819158" 1.3 Automation et Word  PAGEREF _Toc260819158 \h 10
 HYPERLINK \l "_Toc260819159" 1.3.1 Quelques méthodes et propriétés  PAGEREF _Toc260819159 \h 10
 HYPERLINK \l "_Toc260819160" 1.3.2 Lecture d'une partie d'un document Word  PAGEREF _Toc260819160 \h 11
 HYPERLINK \l "_Toc260819161" 1.3.3 Création d'un document Word  PAGEREF _Toc260819161 \h 13
 HYPERLINK \l "_Toc260819162" 1.3.4 Modification d'un document Word : les signets  PAGEREF _Toc260819162 \h 14
 HYPERLINK \l "_Toc260819163" 1.3.5 Impression  PAGEREF _Toc260819163 \h 16
 HYPERLINK \l "_Toc260819164" 1.3.6 Fusion de documents - Mailing  PAGEREF _Toc260819164 \h 17
 HYPERLINK \l "_Toc260819165" 1.3.7 Word et PDF  PAGEREF _Toc260819165 \h 18
 HYPERLINK \l "_Toc260819166" 1.4 Quelques références annexes  PAGEREF _Toc260819166 \h 23







PHP ET AUTOMATION




POO et OLE Automation

Le terme OLE est obsolète dans ce cadre mais signifiait Object Linking and Embedding (Objet lié et/ou Incorporé).

Le modèle COM :
Component Object Model, aussi connu sous le nom de ActiveX, est une technique de composants logiciel (comme les DLL) créée par Microsoft. COM est utilisé en programmation pour permettre le dialogue entre programmes. Bien qu'il ait été implémenté sur de nombreuses plates-formes, il est toujours majoritairement utilisé sur Microsoft Windows. Son prédécesseur fut Object Linking and Embedding (OLE), qui est lui-même sur le point d'être remplacé, en 2009, par le Framework .NET de Microsoft.
Le modèle COM est la norme Microsoft pour le développement de composants réutilisables et communicants. Sa grande particularité est qu'il n'est pas destiné à un langage précis, ni à une plate-forme précise, car il définit un standard binaire. Le modèle peut aussi bien être appliqué avec un langage Pascal, C, C++, Visual Basic ou Java pour ne citer que ces langages.

L'opérateur new et la classe COM() permet de faire de l'Automation avec Word, Excel, …. Ils doivent être installés sur le serveur.

Quelques syntaxes

Instanciation d'un objet COM.

$app = new COM("excel.application") or die("Impossible de démarrer l'application!");

Ouverture d'un fichier.

$doc = $app->collectionApp->Open("chemin");

collectionApp peut être workbooks, documents, …

Fermeture d'un fichier.

$fichier->close(false|true);

Fermeture de l'application.

$app->Quit();


Automation et Excel
Quelques méthodes et propriétés

Propriété/MéthodeDescription$excel = new COM("excel.application")Instancie un objet Excel$excel->workbooks->Open("chemin/fichier")Ouvre un classeur$classeur = $excel->Workbooks->Add()Crée un classeur$feuille = $classeur->sheets(n)Sélectionne une feuille$cellule = $feuille->cells(ligne, colonne)Sélectionne (pointe vers) une cellule$cellule->value = valeurAffecte une valeur à une cellule (Et inversement)$classeur->SaveAs("chemin")Enregistre un classeur$classeur->Close(false);Ferme un classeur (False:sans enregistrer, True en enregistrant)$excel->Quit()Quitte Excel

Lecture d'un classeur Excel

Objectif : Récupération d'un calcul Excel

Créez un classeur Excel et nommez-le phpEtExcel.xls.
Reproduisez la feuille ci-dessous.
En B3 affectez la fonction somme() en cliquant sur ".

 EMBED MSPhotoEd.3 

Créez un formulaire HTML et codez.



On affecte aux cellules B1 et B2 les valeurs du formulaire et on récupère le résultat du calcul qui est en B3;
On ne sauvegarde pas le classeur Excel.


Version}";

// --- Visibilité de l'application sur 0 (faux) (Valeur par défaut)
// --- Pour ouvrir l'application au premier plan, utiliser 1 (vrai)
$excel->Visible = 1;

// --- Ouverture d'un classeur Excel
$classeur = $excel->workbooks->Open("http://localhost/php/automation/phpEtExcel.xls");

$feuille = $classeur->sheets(1);

// --- Affectation
$cellule = $feuille->cells(1,2);
$cellule->value = $_GET["tb_a"];
$cellule = $feuille->cells(2,2);
$cellule->value = $_GET["tb_b"];

// ------------ Tordu mais ça marche
$adresse = "B3";
$plage = $feuille->Range($adresse);
$valeur = $plage->value;

$classeur->Close(false); // Fermeture du classeur sans enregistrer
$excel->Quit(); // --- Fermeture de la connexion au composant COM en quittant l'application
unset($feuille); // --- Libération de $feuille
unset($classeur); // --- Libération de $classeur
unset($excel); // --- Libération de l'instance $excel

// --- Affichage d'un message à l'écran
echo "Valeur récupérée : $valeur";
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
?>


A :
B :




Modification d'un classeur Excel

Par défaut les classeurs sont ouverts en "Lecture Seule".


Création d'un classeur Excel