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