PHPExcel Hintergrundfarbe Logik
Ich habe ein sehr verwirrendes Problem mit PHPExcel. Ich habe 800 Studenten. Ich bin erzeugt ein spreadsheet, in dem aufgelistet wird, wie viel Lob (auf einer täglichen basis für den aktuellen Monat) , die der Schüler hat.
So kann es beispielsweise so Aussehen:
+---------------+-----+-----+-----+-----+
| Student Name | 1st | 2nd | 3rd | 4th | ...
+---------------+-----+-----+-----+-----+
| Test Student | 2 | 0 | 3 | 7 |
+---------------+-----+-----+-----+-----+
Möchte ich ändern die hintergrund-Farbe der Zellen, die größer (oder gleich) 5. Ich benutze eine Schleife, um über die Schüler und Tagen. Das ist mein code:
for($d=1; $d<=$daysInCMonth; $d++)
{
$phpExcel
->getSheetByName('Monthly Leaderboard')
->setCellValue($alphabetArray[($d+7)] . ($recordCount+5), $record['monthlyReport'][$MonthlyReportKeys[($d-1)]]);
if($record['monthlyReport'][$MonthlyReportKeys[($d-1)]]>=5)
{
$cellId = $alphabetArray[($d+7)] . ($recordCount+5);
$phpExcel
->getSheetByName('Monthly Leaderboard')
->getStyle($cellId)
->applyFromArray(
array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,'color' => array('rgb' => '000000'))
));
}
}
Zu helfen zu verstehen, den code, der erste for
Schleife durchläuft von 1 bis Anzahl der Tage im aktuellen Monat (ALSO 30 für Juni). Es setzt dann die Zellen Wert als die Anzahl der Punkte für jeden Tag.
Diesem funktioniert alles perfekt. Nun, die if
Zustand fangen die Zellen, die einen Wert größer (oder gleich) 5.
Den code $alphabetArray[($d+7)] . ($recordCount+5)
packt die aktuelle cell-ID in der iteration. Ich weiß, das funktioniert gut, so gut, denn wenn ich das echo auf dem Bildschirm, die erste Ausgabe ist T5
was ist eine Zelle größer als 5.
Wenn ich implizit angeben T5
wie die Zelle auf die Farbe, es funktioniert gut. Jedoch, wenn ich versuche, den Wert von $cellId
dynamisch Farbe alle Zellen für meinen Zustand, keine der Zellen gefärbt sind.
Ich weiß, die cell-ID ist 100% korrekt, ich weiß, die Färbung Aussage ist richtig (es ist die Farbe der Zellen, wenn ich besonders auf Sie Bezug nehmen). Es will einfach nicht spielen dynamisch.
Irgendwelche Ideen?
Dank
Phil
Ich habe die Hintergrundfarbe Logik (
array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,'color' => array('rgb' => '000000'))
) mit meinem script und es ist in Ordnung mit mir.Danke für den Vorschlag @MarkBaker, sorry für die Verzögerung bei der Beantwortung, ich werde versuchen das jetzt so 🙂 Danke nochmal
InformationsquelleAutor Phil Cross | 2013-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist eine ganz alte Frage jetzt, aber ich fand es nachdem ich das gleiche problem. Nach dem Graben in den code habe ich etwas gefunden, das funktioniert. So dachte, ich würde hinzufügen, dass es hier für alle zukünftigen finder.
Für das bedingte färben des Hintergrundes der Methode der nur die Einstellung der Farbe der Füllung scheint nicht zu funktionieren. z.B.
Den oben funktioniert sehr gut, wenn angewandt direkt an einer Zelle, aber wenn in einer bedingten styling. Wenn gerade nichts tut. Aber wenn Sie es ändern, um
Hintergrund Farben, wie erwartet. Es sieht aus wie das bedingte färben des Hintergrundes muss die start-und end-Farben angegeben.
InformationsquelleAutor Khainestar
InformationsquelleAutor Jatinder Pal