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

Nehmen Sie nicht diesen Ansatz: Bedingte Formatierung verwenden (Abschnitt 4.6.23 der Entwickler-Dokumentation mit dem Titel "Bedingte Formatierung einer Zelle"
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

Schreibe einen Kommentar