国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Key Takeaways
Vorbereitungen
Das HTML -Formular
das hintere Ende
Verbesserung der Kodierungsgeschwindigkeit und Verst?ndnis mehr über PIA
Schlussfolgerung
h?ufig gestellte Fragen (FAQs) zum Erstellen von Microsoft Word -Dokumenten mit PHP
Wie kann ich meinem Word -Dokument Bilder mit PHP hinzufügen? Sie k?nnen die von der PhpWord -Bibliothek bereitgestellte AddImage () -Funktion verwenden. Mit dieser Funktion k?nnen Sie den Pfad zur Bilddatei angeben, die Sie hinzufügen m?chten. Sie k?nnen auch zus?tzliche Parameter wie Breite, H?he und Ausrichtung angeben, um das Erscheinungsbild des Bildes in Ihrem Dokument anzupassen. Denken Sie daran, die erforderlichen Header in Ihr PHP -Skript aufzunehmen, um sicherzustellen, dass das Bild korrekt interpretiert und im Word -Dokument angezeigt wird. Erstellen Sie Tabellen in Word -Dokumenten mit PHP. Die PhpWord -Bibliothek bietet eine Funktion namens addtable (), mit der Sie eine Tabelle in Ihrem Dokument erstellen k?nnen. Sie k?nnen dann die Funktionen addrow () und addCell () verwenden, um Ihrer Tabelle Zeilen und Spalten hinzuzufügen. Sie k?nnen auch die Breite, Gr??e und Ausrichtung Ihrer Tabelle und ihrer Zellen angeben, um ihr Erscheinungsbild anzupassen. Um in Ihrem Word -Dokument mit PHP eine SMS zu schreiben, ist mit der Phpword -Bibliothek einfach. Sie k?nnen die Funktion addText () verwenden, um Ihrem Dokument Text hinzuzufügen, und Sie k?nnen ein Style -Array als zweiter Parameter für diese Funktion angeben. Dieses Stil -Array kann Eigenschaften wie Schriftgr??e, Schriftfarbe, fett, kursiv, unterstreich und vieles mehr umfassen. Sie k?nnen auch ein Style -Objekt mithilfe der Funktionen addtitLestyle () oder addTeragraphStyle () erstellen und auf Ihren Text anwenden.
Kann ich HTML mit Php in ein Word -Dokument konvertieren? Die PhpWord -Bibliothek bietet eine Funktion namens addhtml (), mit der Sie Ihrem Dokument HTML -Inhalte hinzufügen k?nnen. Diese Funktion analysiert den HTML -Inhalt und konvertiert ihn in ein Format, das in einem Word -Dokument angezeigt werden kann. Bitte beachten Sie jedoch, dass nicht alle HTML -Tags unterstützt werden und einige komplexe HTML -Strukturen m?glicherweise nicht korrekt konvertiert werden. Wenn Sie Ihr Word -Dokument mit PHP erstellen, k?nnen Sie es mit der von der PhpWord -Bibliothek bereitgestellten Funktion Save () speichern. Diese Funktion führt den Pfad zu dem Ort, an dem Sie das Dokument als Parameter speichern m?chten. Wenn der angegebene Ort nicht vorhanden ist, versucht die Funktion, ihn zu erstellen. Wenn die Funktion den Speicherort nicht erstellen oder das Dokument speichern kann, wird eine Ausnahme ausgel?st. Header und Fu?zeilen in Ihrem Wortdokument mit PHP. Die PhpWord -Bibliothek bietet Funktionen mit dem Namen addheader () und addfoter (), mit denen Sie Ihrem Dokument Header und Fu?zeilen hinzufügen k?nnen. Sie k?nnen dann die Funktion addText () verwenden, um Ihren Header und Fu?zeilen Text hinzuzufügen. Sie k?nnen auch Stile auf Ihre Header und Fu?zeilen anwenden, die dieselben Methoden wie in Frage 3 beschrieben anwenden. In Ihrem Word -Dokument verwendet PHP mithilfe der von der Phpword -Bibliothek bereitgestellten addpageBreak () -Funktion. Diese Funktion fügt in der aktuellen Position im Dokument einen Seitenumbruch ein, wodurch alle nachfolgenden Inhalte auf einer neuen Seite angezeigt werden. Sie k?nnen ein Word -Dokument aus einer Vorlage mit PHP erstellen. Die PhpWord -Bibliothek bietet eine Funktion namens LoadTemplate (), mit der Sie eine Word -Dokumentvorlage laden k?nnen. Sie k?nnen dann die Funktion SetValue () verwenden, um den Platzhaltertext in der Vorlage durch Ihren eigenen Inhalt zu ersetzen. Ihr Word -Dokument verwendet PHP mithilfe der von der Phpword -Bibliothek bereitgestellten Funktion addlink (). Diese Funktion erstellt einen Hyperlink an der aktuellen Position im Dokument. Sie k?nnen die URL des Hyperlinks und den Text angeben, der als Hyperlink angezeigt wird. Dokument mit PHP. Die PhpWord -Bibliothek bietet eine Funktion namens addlistItem (), mit der Sie Ihrem Dokument ein Listenelement hinzufügen k?nnen. Sie k?nnen den Text des Listenelements und die Tiefe des Elements in der Liste angeben. Sie k?nnen auch Stile auf Ihre Listenelemente anwenden, indem Sie dieselben Methoden wie in Frage 3.
Heim Backend-Entwicklung PHP-Tutorial So erstellen Sie Microsoft Word -Dokumente mit PHP

So erstellen Sie Microsoft Word -Dokumente mit PHP

Feb 20, 2025 am 09:58 AM

So erstellen Sie Microsoft Word -Dokumente mit PHP

Wie ich in meinem vorherigen Artikel, PHP und WMI - tief in Windows mit PHP eingraben hatte, leben wir in einer Welt, in der wir PHP -Entwickler von Zeit zu Zeit mit dem Windows -Betriebssystem befassen müssen. WMI (Windows Management Interface) ist eine solche Anl?sse und Microsoft Office Interop ist eine andere - eine noch wichtigere und h?ufiger verwendete.

In diesem Artikel werden wir eine einfache Integration zwischen Word und PHP sehen: Um ein Microsoft -Word -Dokument basierend auf den Eingaben in einem HTML -Form mit PHP (und seiner Interop -Erweiterung) zu generieren.

Key Takeaways

  • PHP -Entwickler k?nnen Microsoft -Word -Dokumente basierend auf Eingaben in einem HTML -Form mit PHP und seiner Interop -Erweiterung erzeugen.
  • Für eine erfolgreiche Integration ist eine typische WAMP -Umgebung sowie Microsoft Office und die Bibliotheken erforderlich, um eine Interop -Anwendung zu entwickeln (PIA, prim?re Interop -Assemblys).
  • Die PHP -Erweiterung PHP_COM_DOTNET.DLL muss in der Datei php.ini aktiviert werden und der Server neu gestartet wird, bevor Sie mit der Programmierung fortfahren.
  • Die Back -End -PHP -Datei steht im Mittelpunkt des Codierungsprozesses, wobei eine COM -Manipulation in PHP eine Instanziierung einer ?Klasse“ innerhalb einer ?Montage“ erfordert.
  • Um die Codierungsgeschwindigkeit und das Verst?ndnis von PIA zu verbessern, k?nnen Entwickler zuerst Funktionen in C# entwickeln und dann den Code wieder auf PHP migrieren. Die offizielle Dokumentation von Microsoft zu Office PIA ist ein wertvolles Referenzmaterial.

Vorbereitungen

Stellen Sie zun?chst sicher, dass in Ihrem Windows -Entwicklungsger?t eine typische WAMP -Umgebung eingerichtet wurde. Da Interop nur eine Windows -Funktion ist, müssen wir Apache und PHP unter Windows hosten. In diesem Fall verwende ich EASYPHP 14.1, was recht einfach zu installieren und zu konfigurieren ist.

Als n?chstes müssen wir Microsoft Office installieren. Seine Version ist nicht so kritisch. Ich verwende Office 2013 Pro, aber jede Büroversion sp?ter als 2007 sollte funktionieren.

Wir müssen dann sicherstellen, dass die Bibliotheken eine Interop -Anwendung (PIA genannt, prim?re Interop -Assemblys) entwickeln, die installiert sind. Um dies zu ermitteln, k?nnen wir den Windows Explorer ?ffnen und zu: Montage navigieren, und wir werden eine Reihe installierter Pias sehen:

So erstellen Sie Microsoft Word -Dokumente mit PHP

Wir sehen einen Microsoft.Office.Interop.Word -Eintrag (im Snapshot unterstrichen). Dies wird die PIA sein, die wir in dieser Demo verwenden. Bitte achten Sie besondere Aufmerksamkeit auf den Namen ?Assembly“, ?Version“ und ?Public Key Token“. Diese sollen in unseren PHP -Skripten sehr bald verwendet werden.

In diesem Verzeichnis k?nnen wir auch andere PIAS (einschlie?lich der gesamten Bürofamilie) für die Programmierung (nicht nur für PHP, sondern auch für VB.NET, C#usw.) sehen

Wenn die PIAS-Liste nicht das gesamte Paket von Microsoft.Office.Interop enth?lt, werden wir unser Büro entweder neu installieren und PIA-Funktionen enthalten. Oder wir müssen das Paket manuell von Microsoft herunterladen und installieren. Bitte wenden Sie sich an diese MSDN -Seite, um detaillierte Anweisungen zu erhalten.

HINWEIS: Nur Microsoft Office 2010 PIA -Neuverteilung kann heruntergeladen und installiert werden. Die PIA -Version in diesem Paket ist 14.0.0. Version 15 wird nur mit Office 2013 -Installation ausgestattet.

Schlie?lich müssen wir die PHP -Erweiterung php_com_dotnet.dll in der Php.ini -Datei aktivieren und den Server neu starten.

Jetzt k?nnen wir zur Programmierung übergehen.

Das HTML -Formular

Da der Schwerpunkt dieser Demo auf der Back -End -Verarbeitung liegt, werden wir ein einfaches Frontend mit einer einfachen HTML -Form erstellen, die wie die folgende Abbildung aussieht:

So erstellen Sie Microsoft Word -Dokumente mit PHP

Wir haben ein Textfeld für "Name", eine Optionsknopfgruppe für "Geschlecht", eine Reichweite für "Alter" und einen Textbereich für "Nachricht". und schlie?lich natürlich eine Schaltfl?che "Senden".

Speichern Sie diese Datei in einem Verzeichnis unter dem Stammverzeichnis des virtuellen Hosts als "index.html", damit wir mit einem URI wie http: // test/test/interop darauf zugreifen k?nnen.

das hintere Ende

Die Back -End -PHP -Datei steht im Mittelpunkt unserer Diskussion. Ich werde zuerst den Code dieser Datei auflisten und ihn dann Schritt für Schritt erl?utern.

<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

Nach dem Einrichten der $ Inputs Variablen, um die aus unserem Formular ver?ffentlichten Werte zu halten und einen Dummy -Wert für PrintDate zu erstellen - wir werden diskutieren, warum wir dies sp?ter brauchen - wir sto?en auf diese vier kritischen Zeilen:

<span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span>
<span>$w = new DOTNET($assembly, $class);
</span><span>$w->visible = true;</span>

Eine COM -Manipulation in PHP erfordert eine Instanziierung einer ?Klasse“ innerhalb einer ?Assemblierung“. In unserem Fall sollen wir mit Wort arbeiten. Wenn wir über den ersten Screenshot nachdenken, den wir gezeigt haben, k?nnen wir die vollst?ndige Signatur des Wortes PIA erstellen:

  • "Name", "Version", "Public Key Token" werden aus den Informationen entnommen, die angezeigt werden, wenn wir zu ?C: WindowsAssembly“ st?bern.
  • ?Kultur“ ist immer neutral.

Die Klasse, die wir aufrufen sollen, ist immer der Name der Baugruppe Plus ".

Mit diesen beiden Parametern k?nnen wir ein Wortobjekt instanziieren.

Dieses Objekt kann im Hintergrund bleiben oder wir k?nnen es in den Vordergrund stellen, indem wir sein sichtbares Attribut auf True setzen.

Als n?chstes ?ffnen wir das zu verarbeitende Dokument und weisen die Instanz ?Dokument“ einer $ D -Variablen zu.

In diesem Dokument haben wir einige Optionen, um Inhalte basierend auf den Eingaben aus dem HTML -Formular zu erstellen.

Der ungünstigste Weg ist, den gesamten Inhalt in PHP zu codieren und dann in das Wort Dokument auszugeben. Ich entmutige dies aus den folgenden Gründen nachdrücklich:

  1. Es wird keine Flexibilit?t geben. Eine ?nderung der Ausgabe erfordert eine ?nderung des PHP -Skripts.
  2. es verst??t gegen die Trennung zwischen Kontrolle und Pr?sentation.
  3. Es wird die Codezeilen drastisch erh?hen, wenn wir Stile auf den Dokumentinhalt anwenden wollen (Ausrichtung, Schriftart, Stil usw.). Programmatisch sich ?ndernde Stile sind zu umst?ndlich.

Eine andere M?glichkeit besteht darin, ein "Suchreplace" durchzuführen. PHP verfügt über starke integrierte Funktionen. Wir k?nnen ein Word -Dokument erstellen, das einige besondere Grenzwerte in den Platzhalterinhalten aufnimmt, die ersetzt werden sollen. Zum Beispiel k?nnen wir ein Dokument erstellen, das so etwas enth?lt:

{{Name}}

und in PHP k?nnen wir dies einfach durch den von uns abgerufenen "Namen" -Werte ersetzen.

Dies ist unkompliziert und vermeidet alle Nachteile in der ersten Option. Wir müssen ledig

Die dritte Option ist meine Empfehlung und ein erweitertes Thema in Word. Wir werden Felder verwenden, um die Platzhalter darzustellen, und in unserem PHP -Code werden wir die Felder direkt mit den jeweiligen Formularwerten aktualisieren.

Dieser Ansatz ist flexibel, schnell und entspricht den Best Practices von Word. Es vermeidet auch die Volltextensuche in den Dokumenten, was die Leistung hilft. Beachten Sie, dass diese Option auch ihre Nachteile hat.

Wort seit seinem Debüt hat nie benannte Indizes für Felder unterstützt. Obwohl wir einen Namen für die Felder angegeben haben, die wir im Word -Dokument erstellt haben, müssen wir noch Zahlen -Einweise verwenden, um auf jedes Feld zuzugreifen. Dies erkl?rt auch, warum wir eine dedizierte Funktion (Setupfields) verwenden müssen, um die manuelle Zuordnung zwischen dem Feldindex und dem Namen der Formularfelder durchzuführen.

Um zu erfahren, wie Sie Felder in ein Word-Dokument einfügen (klicken Sie hier, um eine vorgefertigte Version zu erhalten), wenden Sie sich bitte an die entsprechenden Word-Hilfe-Themen und -handbücher. Für diese Demo haben wir ein Dokument mit 5 Mergefield -Feldern. Au?erdem haben wir das Dokument in das gleiche Verzeichnis wie das PHP -Skript für einen einfachen Zugriff aufgenommen.

Bitte beachten Sie, dass das Feld Druckdate kein entsprechendes Formularfeld hat. Aus diesem Grund haben wir dem $ Input -Array einen Dummy -Printdate -Schlüssel hinzugefügt. Ohne dies kann das Skript weiter ausgeführt werden, aber es wird beachtet

Nachdem wir die Felder mit Formularwerten aktualisiert haben, drucken wir das Dokument mit:

Die Ausdrucksmethode hat einige optionale Parameter und wir verwenden ihre einfachste Form. Dadurch wird eine Kopie in den Standarddrucker gedruckt, der mit unserem Windows -Computer angeschlossen ist.
<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

Wir k?nnen auch PrintPreview verwenden, um sich die Ausgabe anzusehen, bevor wir uns entscheiden, das Dokument auszudrucken. In einer rein automatisierten Umgebung werden wir stattdessen natürlich den Ausdruck verwenden.

Wir müssen einige Sekunden warten, bevor wir die Wortanwendung beenden, da der Druckauftrag einige Zeit ben?tigt, um vollst?ndig spulen zu werden. Ohne Verz?gerung (3) wird $ w-> Quit sofort ausgeführt und der Druckauftrag wird ebenfalls get?tet.

Schlie?lich nennen wir $ w-> beenden (false), um die von unserem PHP-Skript aufgerufene Wortanwendung zu schlie?en. Der einzige hier angegebene Parameter besteht darin, festzustellen, ob wir ?nderungen vor dem Beenden speichern m?chten. Wir haben ?nderungen am Dokument vorgenommen, aber wir m?chten sie wirklich nicht speichern, da wir eine saubere Vorlage für die Eingabe anderer Benutzer beibehalten m?chten.

Nachdem wir den Code abgeschlossen haben, k?nnen wir die Formularseite laden, einige Werte eingeben und das Formular senden. Die folgenden Bilder zeigen die Ausgabe des PHP -Skripts und auch das aktualisierte Word -Dokument:

So erstellen Sie Microsoft Word -Dokumente mit PHP
So erstellen Sie Microsoft Word -Dokumente mit PHP

Verbesserung der Kodierungsgeschwindigkeit und Verst?ndnis mehr über PIA

PHP ist eine schwach typisierte Sprache. Ein COM -Objekt ist vom Typ Objekt. W?hrend unserer PHP -Codierung gibt es keine M?glichkeit, einen aussagekr?ftigen Code -Einblick aus einem Objekt herauszuholen, sei es eine Wortanwendung, ein Dokument oder ein Feld. Wir wissen nicht, welche Eigenschaften es hat oder welche Methoden es unterstützt.

Dies wird unsere Entwicklungsgeschwindigkeit stark verlangsamen. Um es schneller zu machen, würde ich empfehlen, die Funktionen in C# zuerst zu entwickeln und dann den Code zurück in PHP zu migrieren. Eine kostenlose C# ide, die ich empfehlen würde, hei?t "#Develop" und kann hier heruntergeladen werden. Ich bevorzuge diese der VS -Serie, da #Develop kleiner, sauberer und schneller ist.

Die Migration des C# -Codes in PHP ist überhaupt nicht be?ngstigend. Lassen Sie mich Ihnen einige Zeilen von C# Code zeigen:

<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

Wir k?nnen sehen, dass C# Code fast identisch mit dem zuvor gezeigten PHP -Code ist. C# ist stark tippt, sodass wir einige Typ -Casting -Aussagen sehen und unseren Variablen explizit einen Typ geben müssen.

Mit dem variablen Typ k?nnen wir Code Insight und Code -Fertigstellung genie?en, sodass die Entwicklungsgeschwindigkeit viel schneller ist.

Eine andere M?glichkeit, unsere PHP -Entwicklung zu beschleunigen, besteht darin, auf Wortmakros zu tippen. Wir führen die gleichen Aktionen aus, die wir ausführen müssen, und zeichnen sie mit einem Makro auf. Das Makro ist in Visual Basic, das auch leicht in Php transformiert werden kann.

Am wichtigsten ist, dass die offizielle Dokumentation von Microsoft zu Office PIA, insbesondere die Namespace -Dokumentation für jede Büroanwendungen, immer das detaillierteste Referenzmaterial ist. Die meist verwendeten drei Anwendungen sind:

  • Excel 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = Office.15) .aspx
  • Word 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
  • PowerPoint 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint (v = Office.15) .aspx

Schlussfolgerung

In diesem Artikel haben wir gezeigt, wie ein Word -Dokument mit PHP -COM -Bibliotheken und Microsoft Office Interop -Funktionen fopuliert werden.

Windows und Büro sind im Alltag weit verbreitet. Kenntnisse über die Leistung von Büro/Windows und PHP zu haben, ist für alle PHP -Windows -Programmierer unerl?sslich.

Mit der COM -Erweiterung von PHP wird die Tür zum Beherrschen dieser Kombination ge?ffnet.

Wenn Sie an diesem Programmbereich interessiert sind, hinterlassen Sie bitte Ihre Kommentare und wir werden in Betracht ziehen, mehr Artikel zu diesem Thema zu haben. Ich freue mich darauf, dass mehr reale Anwendungen mit diesem Ansatz entwickelt wurden.

h?ufig gestellte Fragen (FAQs) zum Erstellen von Microsoft Word -Dokumenten mit PHP

Wie kann ich meinem Word -Dokument Bilder mit PHP hinzufügen? Sie k?nnen die von der PhpWord -Bibliothek bereitgestellte AddImage () -Funktion verwenden. Mit dieser Funktion k?nnen Sie den Pfad zur Bilddatei angeben, die Sie hinzufügen m?chten. Sie k?nnen auch zus?tzliche Parameter wie Breite, H?he und Ausrichtung angeben, um das Erscheinungsbild des Bildes in Ihrem Dokument anzupassen. Denken Sie daran, die erforderlichen Header in Ihr PHP -Skript aufzunehmen, um sicherzustellen, dass das Bild korrekt interpretiert und im Word -Dokument angezeigt wird. Erstellen Sie Tabellen in Word -Dokumenten mit PHP. Die PhpWord -Bibliothek bietet eine Funktion namens addtable (), mit der Sie eine Tabelle in Ihrem Dokument erstellen k?nnen. Sie k?nnen dann die Funktionen addrow () und addCell () verwenden, um Ihrer Tabelle Zeilen und Spalten hinzuzufügen. Sie k?nnen auch die Breite, Gr??e und Ausrichtung Ihrer Tabelle und ihrer Zellen angeben, um ihr Erscheinungsbild anzupassen. Um in Ihrem Word -Dokument mit PHP eine SMS zu schreiben, ist mit der Phpword -Bibliothek einfach. Sie k?nnen die Funktion addText () verwenden, um Ihrem Dokument Text hinzuzufügen, und Sie k?nnen ein Style -Array als zweiter Parameter für diese Funktion angeben. Dieses Stil -Array kann Eigenschaften wie Schriftgr??e, Schriftfarbe, fett, kursiv, unterstreich und vieles mehr umfassen. Sie k?nnen auch ein Style -Objekt mithilfe der Funktionen addtitLestyle () oder addTeragraphStyle () erstellen und auf Ihren Text anwenden.

beschrieben anwenden

Das obige ist der detaillierte Inhalt vonSo erstellen Sie Microsoft Word -Dokumente mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Variabler PHP -Bereich erkl?rt Variabler PHP -Bereich erkl?rt Jul 17, 2025 am 04:16 AM

H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Wie behandle ich Datei -Uploads sicher in PHP? Wie behandle ich Datei -Uploads sicher in PHP? Jul 08, 2025 am 02:37 AM

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

Code in PHP aus dem Code ausgehen Code in PHP aus dem Code ausgehen Jul 18, 2025 am 04:57 AM

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

Wie arbeiten Generatoren in PHP? Wie arbeiten Generatoren in PHP? Jul 11, 2025 am 03:12 AM

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Tipps zum Schreiben von PHP -Kommentaren Tipps zum Schreiben von PHP -Kommentaren Jul 18, 2025 am 04:51 AM

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

PHP lernen: Ein Anf?ngerführer PHP lernen: Ein Anf?ngerführer Jul 18, 2025 am 04:54 AM

Tolearnphpeffectival, startbysettingupalocalerverenVironmentusexs -LikexamppandacodeeditorikevScode.1) InstallxamppForapache, MySQL und Php.SeacodeeditorForsyntaxSupport.3) testyourscludingveliktingveliktelaThbiliodble.Neclyble.NektFile

So greifen Sie in einer Zeichenfolge nach Index in PHP auf ein Zeichen zu So greifen Sie in einer Zeichenfolge nach Index in PHP auf ein Zeichen zu Jul 12, 2025 am 03:15 AM

In PHP k?nnen Sie quadratische Klammern oder lockige Klammern verwenden, um Zeichenfolgenspezifikationsspezifische Indexzeichen zu erhalten, aber quadratische Klammern werden empfohlen. Der Index startet von 0 und der Zugriff au?erhalb des Bereichs gibt einen Nullwert zurück und kann keinen Wert zugewiesen; MB_SUBSTR ist erforderlich, um Multi-Byte-Zeichen zu verarbeiten. Zum Beispiel: $ str = "Hallo"; echo $ str [0]; Ausgabe H; und chinesische Zeichen wie Mb_Substr ($ str, 1,1) müssen das richtige Ergebnis erzielen. In den tats?chlichen Anwendungen sollte die L?nge der Zeichenfolge vor dem Schleifen überprüft werden, dynamische Zeichenfolgen müssen für die Gültigkeit verifiziert werden, und mehrsprachige Projekte empfehlen, Multi-Byte-Sicherheitsfunktionen einheitlich zu verwenden.

SchnellpHP -Installations -Tutorial SchnellpHP -Installations -Tutorial Jul 18, 2025 am 04:52 AM

Toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1.onwindows, download undInstallxampp, SelectComponents, Startapache und PlaceFilesinhtdocscs.2.Anternativ, manuellinstallphpfrfr

See all articles