Ich habe diese Excel-Datei (.xlsx
):Formeln berechnet nicht, wenn sie als csv exportieren
+---+-------+
| | A |
+---+-------+
| 1 | 1 |
| 2 | =A1+1 |
| 3 | =2*3 |
+---+-------+
In Laravel ich diesen Code konfiguriert haben den Inhalt
return Excel::load(base_path().'/test.xlsx')->string('csv');
, die den Text der zurück anzuzeigen Zellen:
"1", "= A1 + 1", "= 3 * 2"
Was ich will, sind die berechneten Werte, aber mit der gleichen Formatierung:
"1", "2", "6"
Der Code
return Excel::load(base_path().'/test.xlsx')->get();
kehrt die korrekten berechneten Daten, aber im falschen Format.
PHP ist keine Tabellenkalkulation, es hat keine Idee was = A1 + 1 im Kontext einer Tabellenkalkulation bedeutet und exportiert nur den Rohwert der Spalte. Sie müssten diese Funktionalität selbst implementieren (erstellen Sie ein Array von Spalten und Zeilen, scannen Sie das erste Zeichen für eine beliebige Zelle für das = -Symbol, wenn Sie ein = -Symbol finden, nehmen Sie an, dass der Rest der Spalte eine Formel ist und versuchen Sie es auszuführen) it) – GordonM
Das ist keine PHP-Funktion, es ist eine Funktion der Bibliothek, die Sie zum Parsen der Datei verwenden. Wenn Sie die von get bereitgestellte Formatierung nicht mögen, können Sie die Klasse, die es implementiert, erweitern und die Superklassenimplementierung durch Ihre eigene – GordonM