PHPExcel で非常に紛らわしい問題があります。私には800人の学生がいます。学生が持っている賞賛の量 (当月の毎日) をリストするスプレッドシートが生成されます。
たとえば、次のようになります。
+---------------+-----+-----+-----+-----+
| Student Name | 1st | 2nd | 3rd | 4th | ...
+---------------+-----+-----+-----+-----+
| Test Student | 2 | 0 | 3 | 7 |
+---------------+-----+-----+-----+-----+
5より大きい(または等しい)セルの背景色を変更したい.ループを使用して、生徒と日をループします。これは私のコードです:
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'))
));
}
}
コードを理解しやすくするために、最初のfor
ループは 1 から現在の月 (6 月の場合は IE 30) の日数までループします。次に、セルの値を特定の日のポイント数として設定します。
これはすべて完璧に機能します。これで、if
条件は 5 より大きい (または等しい) 値を持つセルをキャッチします。
コード$alphabetArray[($d+7)] . ($recordCount+5)
は、反復で現在のセル ID を取得します。T5
画面にエコーすると、最初の出力は5より大きいセルになるため、これもうまく機能することがわかっています。
T5
色を付けるセルとして暗黙的に指定すると、正常に機能します。ただし、値を使用し$cellId
て条件のすべてのセルを動的に色付けしようとすると、どのセルも色付けされません。
セル ID が 100% 正しいこと、色付けステートメントが正しいことはわかっています (セルを具体的に参照すると、セルに色が付けられるため)。動的に再生したくないだけです。
何か案は?
ありがとうフィル