PHPExcel_Style_Fill unendliche Rekursion

8

Ich benutze die Bibliothek PHPExcel 1.7.9 , um mit Excel Dateien zu arbeiten. Zuerst erstelle ich eine Vorlage, stilisiere und poliere sie. Um die Hardcodierung von Stilen zu vermeiden, öffne ich diese Vorlage, benutze die oben erwähnte Bibliothek, ändere einige Werte und speichere sie als neue .xlsx -Datei.

Zuerst holen wir diesen Stil aus Zellen.

%Vor%

Hier ist die rekursive Funktion, die Kategorien und Unterkategorien anzeigt.

%Vor%

Das Problem

Wenn $sheet->duplicateStyle() verwendet wird, ist es wegen unendlicher Rekursion unmöglich, ein Dokument zu speichern.

  

Maximale Funktionsverschachtelungsebene von '200' erreicht, Abbruch! & lt; - FATALER FEHLER

Das Problem ist im nächsten Stück Code, in PHPExcel_Style_Fill class, ein Objekt referenziert sich immer wieder selbst.

%Vor%

Gibt es eine Problemumgehung, um das Problem zu lösen? Ich würde auch alle Ideen akzeptieren, wie man einen vollständigen Stil einer Zelle auf eine andere anwenden kann.

Lösung:

Wie @MarkBaker in Kommentaren gesagt hat, enthält der Zweig develop auf GitHub wirklich Korrekturen für den Fehler.

    
vikingmaster 11.09.2013, 13:29
quelle

2 Antworten

3

BEARBEITEN Ich habe eine Pull-Anfrage mit einem Fix hinzugefügt: Ссылка

Dies passiert, wenn Sie versuchen, den Stil einer Zelle in dieselbe Zelle zu kopieren; Sieh dir das an:

%Vor%

Es wird gut funktionieren. ABER wenn ich eine weitere Zeile wie folgt hinzufüge:

%Vor%

dann bang, beginnt die unendliche Rekursion nach dem Aufruf der Methode save

Um Ihren Code zu reparieren, sollten Sie diesen Teil ändern:

%Vor%

Zu etwas in der Art von:

%Vor%     
siergiej 27.09.2013, 07:31
quelle
1

Ohne die Besonderheiten der Bibliothek zu kennen ...

Wie wäre es, dies zu ändern:

%Vor%

Dazu:

%Vor%

Wenn die Hash-Codelogik nach der if -Anweisung nicht auf _isSupervisor zutrifft, fügen Sie eine weitere logische Anweisung hinzu und geben Sie einen festen Wert wie folgt zurück:

%Vor%     
ash 27.09.2013 04:26
quelle

Tags und Links