
Ich denke, dass aus dem Screenshot bereits klar hervorgeht, worum es geht. Um den bereits in der
Dokumentation beschriebenen Text nicht zu duplizieren, werde ich jedoch nur auf wichtige Punkte eingehen.
Tatsache ist, dass die PHP-Bibliothek für die Arbeit mit Excel-Dokumenten vor langer Zeit erschienen ist, aber die Template-Engine noch nicht dafür erfunden wurde (zumindest habe ich nichts Sinnvolleres gefunden). Und wir alle brauchen eine solche Bibliothek für Excel, in die wir Vorlagenvariablen in eine Vorlage eingefügt, Parameter für sie übergeben und an ein Rendering gesendet haben. All dies geschieht mit einem Befehl:
use alhimik1986\PhpExcelTemplator\PhpExcelTemplator; PhpExcelTemplator::saveToFile('./template.xlsx', './exported_file.xlsx', [ '{current_date}' => date('dm-Y'), '{department}' => 'Sales department', ]);
Darüber hinaus haben wir folgende Wunschliste:
- Wir möchten mehrere Vorlagenvariablen in einer Zelle anwenden
- und wir wollen auch ein Array übergeben, und in Excel dafür wurden die entsprechenden Zeilen in der Zelle erstellt
- aber was ist mit einem zweidimensionalen Array, so dass nicht nur Zeilen, sondern auch Spalten erstellt werden
- Außerdem müssen wir für jede eingefügte Zelle Stile anwenden, um beispielsweise große Mengen grün hervorzuheben oder Mitarbeiter hervorzuheben, die sich fett hervorgehoben haben
Sie werden sagen, dass ich dies bereits versucht habe: Wenn Zeilen erstellt werden, werden die Spalten rechts von dieser Zelle dupliziert. Nein, dies wird nicht passieren, da in Wirklichkeit nicht die Linien erstellt werden, sondern die „Zellen mit einer Verschiebung nach unten“ hinzugefügt werden. Übrigens gibt es in PHP Spreadsheet derzeit keine solche Funktion, es können nur Zeilen eingefügt werden.
Sind Nebenwirkungen möglich, wenn eine große Anzahl eindimensionaler und zweidimensionaler Arrays verwendet wird? Ja, das sind sie. Insbesondere wenn mehrere zweidimensionale Arrays in derselben Zeile und in mehreren Zeilen hintereinander verwendet werden. Tatsache ist, dass Zellen (rechts), die keine Vorlagenvariablen enthalten, sich nicht bewegen. Infolgedessen können sie von Zellen mit einem zweidimensionalen Array überlappt werden. Der Ausweg besteht darin, Vorlagenvariablen mit leeren Daten zu erstellen und diese Variablen neben den Zellen zu platzieren, für die Sie einrücken müssen. Ein Beispiel für Nebenwirkungen finden Sie im Ordner „Beispiele“.
Es klingt kompliziert, aber wenn Linien erstellt würden, gäbe es viel mehr Nebenwirkungen. Das heißt, die Wahrscheinlichkeit von Nebenwirkungen ist relativ gering.
Die Pläne: Erstellen Sie ein Beispiel, das zeigt, wie mit Nebenwirkungen umgegangen werden soll. die Möglichkeit, Stile ohne Verwendung von Setzern anzuwenden (um weniger Klassen zu exportieren und die Menge des verwendeten Codes zu reduzieren). Warum habe ich es jetzt nicht getan? Ich brauche Unterstützung, das heißt, ich muss wissen, dass jemand dies braucht. Und dann stellt sich plötzlich heraus, dass ich ein Fahrrad erfunden habe und alles, was ich getan habe, war ein komplettes Spiel. Deshalb warte ich auf Ihr Feedback.
Link zum Projekt